Weave 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

Tables Laravel Package

beartropy/tables

Beartropy Tables is a Livewire table component for the TALL stack with search, sorting, filters, bulk actions, and column toggling. It includes inline editing and boolean toggles with per-field authorization hooks to control writes.

View on GitHub
Deep Wiki
Context7

This is yet another Laravel Livewire table package provided "as is". It offers the essentials for building data tables: filtering, searching, sorting, bulk actions, and column toggling.

📚 Documentation

The full documentation for this package involves installation, configuration, and advanced usage examples.

👉 Read the full documentation at beartropy.com/tables

✨ Key Features

  • Searchable: Built-in search functionality to quickly find data.
  • Sortable: Easy column sorting support for any field.
  • Filters: Flexible filtering system to refine datasets.
  • Bulk Actions: Perform actions on multiple selected rows at once.
  • Column Toggling: Allow users to show or hide columns dynamically.
  • TALL Stack Optimized: Built seamlessly for Tailwind CSS, Alpine.js, Laravel, and Livewire.

🔐 Inline Editing & Toggle Authorization

Inline editing and boolean toggles are write actions reachable from the browser, so the table decides what may be written.

Only columns declared with ->editable() can be written through updateField(). A column that merely exists is not a write target, and toggleBoolean() ignores any column key that is not part of columns().

On top of that, three hooks let you apply your own policy checks. All three default to permitting the write, so a table that exposes sensitive columns must override them — they are hooks, not automatic protection.

use Illuminate\Database\Eloquent\Model;

// Eloquent-backed tables: receives the resolved record.
public function authorizeFieldUpdate(Model $record, string $field, mixed $value): bool
{
    return auth()->user()->can('update', $record);
}

// Callback columns and array/stdClass tables: no model exists, so this
// receives the raw row id instead of a record.
public function authorizeFieldUpdateRaw($id, string $field, mixed $value): bool
{
    return auth()->user()->can('editTables');
}

// Boolean toggle columns.
public function authorizeToggle($id, string $column): bool
{
    return auth()->user()->can('editTables');
}

🚀 Quick Installation

You can install the package via composer:

composer require beartropy/tables

🤝 Contributing

Please see CONTRIBUTING for details.

📄 License

The MIT License (MIT). Please see License File for more information.

[!NOTE] Disclaimer: This software is provided "as is", without warranty of any kind, express or implied. Use at your own risk.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings