Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Livewire Tables Laravel Package

rappasoft/laravel-livewire-tables

Laravel Livewire Tables provides dynamic, feature-rich data tables for Laravel Livewire with sorting, searching, filtering, pagination, bulk actions, and Bootstrap/Tailwind support. Build reusable table components backed by Eloquent queries.

View on GitHub
Deep Wiki
Context7
v3.7.3

Bug Fixes

v3.7.2

Bug Fixes

New Features

Tweaks

v3.7.1

Bug Fixes

v3.7.0

Bug Fixes

New Features

Tweaks

v3.6.0

Bug Fixes

Tweaks

Testing

v3.5.10

Tweaks

v3.5.8

New Features

Bug Fixes

Localisation

Testing

v3.5.7

New Features

Tweaks

Blades

Testing

v3.5.6

New Features

Tweaks

Testing

v3.5.5

Bug Fixes

v3.5.4

Bug Fixes

Testing

v3.5.3

Bug Fixes

Testing

v3.5.2
v3.5.1

Bug Fixes

v3.5.0

Bug Fixes

New Features

Localisation

v3.4.22

Bug Fixes

New Features

Docs

v3.4.21

Bug Fixes

New Features

Tweaks

Docs

v3.4.20

Bug Fixes

v3.4.19

Bug Fixes

v3.4.18

New Features

Docs

v3.4.15
v3.4.14

New Features

v3.4.13

Bug Fixes

Docs

v3.4.12
v3.4.11

New Features

v3.4.10

Bug Fixes

Docs

v3.4.9

Bug Fixes

v3.4.8

New Features

v3.4.7

Bug Fixes

v3.4.6

New Features

Bug Fixes

Tweaks

v3.4.5
v3.4.4

New Features

Bug Fixes

Tweaks

v3.4.3

New Features

Bug Fixes

Docs

v3.4.2

New Features

Bug Fixes

Tweaks

v3.4.1

Bug Fixes

v3.4.0

New Features

Bug Fixes

Tweaks

Docs

v3.3.4

New Features

Tweaks

v3.3.3

New Features

v3.3.2

New Features

Bug Fixes

v3.3.1

Bug Fixes

New Features

v3.3.0

New Features

v3.2.8

Bug Fixes

New Features

Tweaks

v3.2.7

Bug Fixes

v3.2.6

New Features

Bug Fixes

Tweaks

v3.2.4

Bug Fixes

  • Collapsing Columns fix when multiple tables are displayed on a page by @lrljoe
v3.2.3

New Features

Docs

  • Amend Lifecycle Hooks document to use "public" rather than "protected" methods
v3.2.2
v3.2.1

Bug Fixes

Tweaks

v3.2.0

Tweaks

v3.1.9

Bug Fixes

  • Fix CHANGELOG.md missing release
v3.1.8

New Features

v3.1.7
v3.1.6

New Features

Bug Fixes

v3.1.5

New Features

Tweaks

  • Internal - modify GitHub workflows to improve caching, but use unique caches per workflow matrix
  • Internal - remove superfluous PHPStan ignoreErrors
  • Internal - update Test Suite to also test at PHP 8.3
  • Internal - tidying Classes & Traits by @lrljoe
  • Docs - Update Anonymous Column documents to reference ability to use strings as well as views
v3.1.4

New Features

Bug Fixes

Tweaks

  • Create additional Exception Classes (NoColumnsException, NoSearchableColumnsException, NoSortableColumnsException)
  • Revert previous splitting of JS Files
  • Add capability to customise Bulk Actions Styling with tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1564
    • TH Classes
    • TH Checkbox Classes
    • TD Classes
    • TD Checkbox Classes
v3.1.3
v3.1.2
v3.1.1

New Features

  • Add setCustomView for Filters

Bug Fixes

  • Default Search to "Live" rather than "Defer" to match v2

Tweaks

  • Modify Filters to use DTO for Generic Property List by @lrljoe in #1503
  • Split ConfigurableAreas, CollapsingColumns and TableAttributes into own Traits/Config/Helper Files for Maintainability by @lrljoe in #1514
  • Add "HasAllTraits" for Maintainability by @lrljoe in #1514
  • Rename row-contents to collapsed-columns
  • Add IsFilter and IsColumn Traits for Filter/Column Classes
v3.1.0
  • Restore wire:confirm for Bulk Actions
  • Stable Release of 3.1.0 Stable for Livewire v3 Support
3.0.0-beta.11
  • Update Date Range Icon Styling
  • Migrate PHP from date-range blade into new DateRangeFilter method
  • Add FilterHelper method for generating filter wire:keys
  • Add Filter CustomPosition tests
  • Add Placeholder config option for DateRangeFilter
  • Add Placeholder config option for DateFilter, DateTimeFilter, NumberFilter
  • Clean up classes on filters
  • Minor tweaks to toolbar/column select styling
  • Fix wire:confirm for BulkActions (removed in merge error)
3.0.0-beta.9
  • Fixes for missing default behaviour by @lrljoe in #1455
3.0.0-beta.10
3.0.0-beta.8
  • Fix for setFilter - allows setting values at mount/boot (#1451) by @lrljoe in #1452
3.0.0-beta.7
  • Add wire:navigate option for clickable rows
3.0.0-beta.6
  • Fix for collapsing column header shift
3.0.0-beta.5
  • Fix Return Type hinting for Column Rendering to allow Enum columns
  • Add Bulk Action Confirmations, using wire:confirm
    • setBulkActionConfirms
    • setBulkActionConfirmMessage
    • setBulkActionConfirmMessages
    • setBulkActionDefaultConfirmationMessage
    • Localisation for confirmation message
3.0.0-beta.4
  • Introduction of Loading Placeholder
  • Docs livewire namespace fix Here
  • Add CollapseAlways capability for Columns
  • Fix localisation bug
3.0.0-beta.3
  • Fix for Livewire ^3.0.6 where the table loading causes an additional lifecycle
  • Add unminified files to .gitattributes export-ignore
  • Increase cached time to 1 day from 1 hour if cache is enabled
3.0.0-beta.2
  • Removes superfluous @endphp from the DateRangeFilter blade
  • Removes reference to remote/published 3rd party assets
  • Add setFilterLabelAttributes Capability Per-Filter
  • Fix for reorder sort not applying automatically
2.15.0
2.14.0

Changed

  • Fixes

    • Bulk Actions (AlpineJS)
    • Moving Table Head Checkbox to AlpineJS
    • Using AlpineJS for calculating if all items have been selected
    • Correcting missing x-cloak
    • Added indeterminateCheckbox for TH for bulk actions
    • Cleaned up ALpineJS functionality for Bulk Actions
    • Repair of tests that were looking for wire:model that no longer existed
  • Enhancements

    • Several new public variables for accessing pagination data cleanly, to avoid calling functions repeatedly across various blades.
      • paginationTotalItemCount (Total number of items in the results across all page)
      • paginationCurrentItems (Primary keys of items in the current page)
      • paginationCurrentCount (Number of results on the current page)
  • Blades

    • Several blades have had the classic Tables approach ($theme == 'tailwind', $theme == 'bootstrap) replaced with conditional classes using the @class([]) approach. This is to reduce the complexity of the blade files.
2.13.1

Changed

  • Fixes for AlpineJS
2.13.0

Changed

2.12.0

Added

Changed

2.11.0

Added

Changed

2.10.0

Added

Changed

2.9.0

Added

Changed

2.8.0

Added

Changed

2.7.0

Added

  • Added functionality to hide individual filters from popover and slide down views
  • Added functionality to hide individual filters from filter pills
  • Added functionality to hide individual filters from the active filter count
  • Added functionality to say which filters get reset by the clear button
  • Added functionality to set filters as secondaryHeader or footer of columns
  • Added Brazilian Portuguese translation - https://github.com/rappasoft/laravel-livewire-tables/pull/797
2.6.0

Added

  • Added functionality to display BooleanColumn as Yes/No instead of icons.
  • Added ButtonGroupColumn for multiple LinkColumns in one group. Pretty much built in action buttons support.
  • Added bulk action export example to docs.
2.5.0

Added

  • Ability to pass mount parameters to configurable areas

Changed

  • Move configure call to boot instead of booteed.
  • Mount methods now available in configure() method.
  • Non-field columns with a searchable callback are now included in the search query.
  • Fixed debug query output duplicating select statements.
  • Fixed header issue on column hide - https://github.com/rappasoft/laravel-livewire-tables/pull/754

Removed

  • Calls to set builder and columns in render as it doesn't seem to make a difference since it's also called in booted.
2.4.0

Added

  • Added table event listeners to sort/filter/clear from other components.
  • Added text filter.
  • Added $row as second parameter to BooleanColumn setCallback().
  • Added setThSortButtonAttributes() to set attributes for th sort button.
  • Added setHideConfigurableAreasWhenReorderingStatus() to hide configurable areas when reordering status which now defaults to true.

Changed

  • Rework builder to fix passed parameters in builder() and columns() methods.
  • Fixed possible bug with bulk actions dropdown on Tailwind when bulk actions are hidden until a selection is made.
2.3.0

Added

  • Added ability to define additional select statements outside the scope of a column using the setAdditionalSelects(array $selects) configuration method.
  • Added 8 configurable areas, see Configurable Areas of the Datatable section of the documentation.
2.2.1

Changed

2.2.0

Added

Changed

2.1.0

Added

Changed

2.0.0

Ground Up Rebuild

1.21.0

Added

Changed

1.20.1

Changed

1.20.0

Added

Changed

1.19.2

Added

Changed

1.19.1

Changed

  • Fixed table target default
1.19.0

Added

Changed

1.18.0

Added

  • Secondary header (see documentation section Secondary Header Functionality on how to implement column search)

Changed

  • Add missing properties to reordering session
1.17.0

Added

Changed

1.16.0

Added

Changed

1.15.0

Added

  • Dark styles for Tailwind

Changed

  • Minimum Livewire version to 2.6.2 to avoid 2.6.1 bug.
  • Remove our custom pagination as Livewire 2.6 supports multiple pagination per page now.
1.14.0

Added

1.12.0
1.11.0

Added

Changed

1.10.4

Added

  • Added $hideBulkActionsOnEmpty to hide the bulk actions dropdown until something is selected.
1.10.3

Added

  • When reordering, the last known state of the table is now saved in the session so when you're done reordering you are back where you left off and no filters/sorts/search is lost.

Changed

  • Fixed query string getting wiped out on reload
1.10.1

Changed

  • Fixed Tailwind column popup on reorder
1.10.0

This release requires re-publishing of assets.

Added

1.9.0

This release requires re-publishing of assets.

Added

Changed

  • Replaced bootstrap dropdowns with Alpine on bootstrap themes which fixes them closing prematurely when selecting filters.
  • Added wrapping divs around needed if statements.
  • Fixed Bootstrap pagination DOM-diffing issues.
1.8.0

Added

Changed

1.6.0

Added

  • Added Unselect All button on bulk row when selecting page.
  • Added disabled delay on select checkboxes.
  • Added disabled on bulk row button clicks.
  • Added missing showPagination conditional to views.
  • Added getFilters and getFiltersWithoutSearch methods and refactor views.
  • Added checkFilters method and refactor mountWithFilters
  • Added hasIntegerKeys method

Changed

  • When selecting a page, if there are the same selected as total rows, just show the amount of selected instead of showing "Selecting 1 row. Do you want to select all 1 rows.".
  • Move bulk select row to its own partial for all templates.
  • Moved updatedFilters from WithSearch to WithFilters
  • Refactor hasFilter to support numeric keys
  • Refactor getFilter to support numeric keys
  • Refactor getFilterOptions to support numeric keys

Removed

  • Removed updatingFilters from WithFilters
1.5.1

Added

  • Added clear search method.

Changed

  • Changed resetAll method to include search and page and moved to parent component.
  • Refactored search method to use new resetSearch.
  • Use custom per page on first load
1.5.0

Added

  • Added hideIf for columns to hide a column with a conditional, works out of the box for cells not using rowView, if using rowView you must wrap the cells you want to hide in the same conditional. See documentation.
  • Added selected row de-selector when not selecting full page or all.
1.4.0

Added

  • Added option for single column sorting only.
  • Ability to change empty message per table.
  • Added en.json lang file.
  • Ability to add 'All' option to per-page.

Changed

  • Modified views to support localization better where necessary (republish views).
  • Alphabetize en.json
  • Fixed bulk actions using wrong key to select instead of $primaryKey
  • Make bulk select checkbox use primary key
1.3.1

Added

Changed

Removed

  • Removed old readme for the documentation link.
1.3.0

Added

Changed

  • Fixed offline indicators to display block.
  • Tailwind cool-gray to just gray since it is included by default.
1.2.2

Changed

  • Removed hard coded bulk text of users and changed to rows
1.2.1

Changed

  • Remove padding from bootstrap container to keep it flush with sides like Tailwind
1.2.0

Added

  • Ability to disable pagination (https://github.com/rappasoft/laravel-livewire-tables/pull/222)
  • Ability to define the sorting direction names for each column. i.e. A-Z, Z-A, Yes, No, Enabled, Disabled, etc.
  • Added ability to define primary key of rows for bulk select
  • Added selectedKeys property that returns an array of the ids of the selected rows

Changed

  • Clarified where rowView looks in read me
  • Null the search filter when it's empty
  • Fill per page options from $perPageAccepted in views
  • Make $perPageAccepted public

Removed

  • Removed text-secondary class from sorting title
1.1.0

Added

Changed

1.0.4

Added

Changed

  • Rearrange wire:keys
1.0.3

Added

  • Added Bootstrap 5 theme

Changed

  • Removed calls to custom primary color with indigo for tailwind
  • Updated search and row click sections of read me to be more clear.
  • Added resetPage to per page dropdown and filters.
1.0.2

Changed

  • Fixed checkbox click with row click combination following URL and not checking checkbox.
1.0.1

Changed

  • Fixed missing bootstrap components aliased to bs4.table.*
  • Updated readme
  • Added missing row click on bootstrap
1.0.0
  • Ground up rebuild, see documentation for usage.
0.3.3

Added

  • PHP8 Support
  • Spanish translations
  • German translations
  • French translations

Changed

  • Updated Arabic translations
0.3.2

Added

  • Added thead class to option array
  • Ability to export the list set to CSV/XLS/XLSX/PDF
  • Ability to mark a visible column as not to be exported
  • Ability to mark a column as export only, which hides it from UI
  • Ability to format a single column differently for export as it is for its UI
  • Added option to change the button class from the config
0.3.1

Changed

  • Fixed non-sortable column headers not getting classes applied.
  • Updated documentation
0.3
  • Ground up rebuild

Added

  • Config file to choose frontend framework - currently limited to bootstrap
  • Render method to columns which returns whatever you put into it, you can return a view, html, an attribute, etc.
  • Pulled in and modified the HTML component library from laravelcollective so you can return html components from the render method. i.e.: $this->image(...);
  • Added new loading config on whether to keep displaying the current data while loading or collapse it
  • Added ability to set frontend framework specific options via a property on a per component basis.

Changed

  • Extracted the sorting icons out to their actual HTML, so you can use whatever you want, not limited to the 'i' tag.

Removed

  • Checkbox functionality for now
  • Component functionality pending debate
  • All class and styling based properties. It's better to publish the views to change something.
0.2.1

Added

  • Arabic translations
  • Ability to add a link to make table rows clickable
  • Added the ability to change the sort icons
  • Ability to hide a column based on a condition or permanently

Updated

  • Livewire to 2.x

Removed

  • Removed 1 hard coded font awesome icon

Changed

  • Publish tags to service provider
0.2.0

Added

  • Add pagination reset for perPage updates
  • Add second parameter to view method for the name of the model variable available in the view.
  • Allow publishing of views
  • Make docblocks work with psalm
  • Added searching method either debounce or lazy
  • Allow dot notation for customer attributes
  • Added loading message to table body if $loadingIndicator is true
  • Add clear button option to search box

Changed

  • Updated Livewire to 1.3
  • $disableSearchOnLoading default to false
  • Trim the search term when processing
  • Added language to publishable translation file

Removed

  • Existing loading subview for tbody message
0.1.6

Changed

  • Add second parameter to view method for the name of the model variable available in the view.
0.1.5

Changed

  • Use constructor instead of mount so that the child classes have access to a mount method that they can accept parameters in.
0.1.4

Changed

  • Changed $models to $builder
  • Changed callback parameters for sorting to $builder, $direction. (Removed sortField because we know what it is, until someone gives me an example of why it would be beneficial to keep it).
0.1.3

Changed

  • Ability to turn off per page option while keeping pagination on
  • Fix the search feature if pagination is on, and you're not searching from the first page using Livewire's native resetPage() method.
0.1.2

Changed

  • Fixed pagination text when there are zero results
0.1.1

Changed

  • Name of table blade view to avoid issues with other like named packages
0.1.0
  • Initial release
Bug
3.0.0-beta.1
  • Amending Documentation for Reordering

  • Adding capabilities & tests for setTrAttributes

  • Force calculation of even/odd only once in reorder mode

  • Call internal method for reordering, and pass to configured method to process

  • Amend AutoInjection/FrontendAsset to ensure it returns the original content correctly

  • Remove errant disabling of Blade Directives when disabling auto-injection

  • Amended in-line config documentation

  • Add setSearchFieldAttributes() and getSearchFieldAttributes()

  • Add missing pagination tests

  • Removal of setSearchLazy

  • Fix for setSearchDebounce

  • Fix publishing of views

  • Fix for Bulk Actions dropdown not working in Bootstrap

  • Fix for Column Select "Select All" not consistently updating

  • Fix for lazy loading of table

  • Fix for ColumnSelect falling out of sync, displaying unselectable colums, or persisting cols in query that are not selected

  • Add setSearchBlur()

  • Add setSearchThrottle()

  • Add publish translations

  • Add prependColumns() and appendColumns() functions

  • Add documentation for setSearchPlaceholder()

  • Add setExcludeDeselectedColumnsFromQueryEnabled and setExcludeDeselectedColumnsFromQueryDisabled methods to configure()

  • Requirements Change

    • Requires LiveWire 3.x
    • Requires PHP 8.1+
    • Requires Laravel 10+
  • Core Changes

    • Move sorts, search, selectedColumns out of the traditional $this->{$this->getTableName()}['sorts'] and instead place it directly within the component. This:

    • Tidying

      • Removed Spatie Package Tools and replaced with a generic service provider
      • Significant reduction in blade/view sizes, and repetition of code across Tailwind/Bootstrap 4/Bootstrap 5 themes
      • Uses HeroIcons instead of hard-coded SVGs for icons
      • Several variables are now inherited instead of being passed (e.g. Table Name)
      • Change to how Filters are rendered (no longer receives $component)
      • Wire keys and IDs now all conform to a format
    • Features

      • General

        • Added support for cursor pagination
        • Cursor & Simple pagination both include a "Total Item Count" stored in $paginationTotalItemCount
        • Added support for multiple relations on a single table (e.g. user has a "mother user" and a "father user")
        • Replaced dependency on unsupported Sortable JS libraries.
        • Option for a Search Placeholder to be set
        • Bootstrap striping is now fully working
      • Filters

        • Filter Construct calls config([]) by default to set configuration defaults, to avoid errors
        • Added Numeric Range filter
        • Added Date Range filter
        • DateFilter & DateTimeFilter have customisable Pills Date Format
        • DateFilter & DateTimeFilter fully support setFilterDefaultValue
        • MultiSelectFilter & MultiSelectDropdownFilter both support setFirstOption()
        • There are now two arrays relating to Filters:
          • A wireable one ($filterComponents)
          • An unwired one - only keeps track of those filters that have a value ($appliedFilters). This is what is bound to the query string, and populates the filters on mount if they are present in the query string.
      • Livewire 3 Specific

        • Migrated any $component->id reference to $component->getId()
        • Added SetSearchLive to allow for the search to be "live", with tests
        • Added capability for external CSS file
        • Custom CSS/JS and Alpine components are now stored in an external file, which has configurable injection options
        • Added setSearchLive(), setSearchThrottle(int $milliseconds) and setSearchBlur() options for Search behaviour
  • Test Changes

    • Temporarily removed the sort_events_apply_correctly and filter_events_apply_correctly due to LW3 not using Emit anymore.

    • Added extra column to the PetsTable -> last_visit and associated test changes to make the counts work. This column is deselected() by default to allow for testing on those methods.

  • Doc Changes

    • Slowly begun updating the docs with the relevant new features, dependencies etc.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport