Installation
The Table Builder package is pre-installed with the Panel Builder. This guide is for using the Table Builder in a custom TALL Stack application (Tailwind, Alpine, Livewire, Laravel).
Requirements
Filament requires the following to run:
- PHP 8.1+
- Laravel v10.0+
- Livewire v3.0+
Livewire v3 is recently released!
The livewire team have done a great job in making it stable, but it was a complete rewrite of Livewire v2. You may encounter issuses, so we recommend testing your application thoroughly before using Filament v3 in production.
Installation
Require the Table Builder package using Composer:
composer require filament/tables:"^3.0-stable" -W
New Laravel projects
To quickly get started with Filament in a new Laravel project, run the following commands to install Livewire, Alpine.js, and Tailwind CSS:
Since these commands will overwrite existing files in your application, only run this in a new Laravel project!
php artisan filament:install --scaffold --tables
npm install
npm run dev
Existing Laravel projects
Run the following command to install the Table Builder assets:
php artisan filament:install --tables
Installing Tailwind CSS
Run the following command to install Tailwind CSS with the Tailwind Forms and Typography plugins:
npm install tailwindcss @tailwindcss/forms @tailwindcss/typography postcss autoprefixer --save-dev
Create a new tailwind.config.js
file and add the Filament preset
(includes the Filament color scheme and the required Tailwind plugins):
import preset from './vendor/filament/support/tailwind.config.preset'
export default {
presets: [preset],
content: [
'./app/Filament/**/*.php',
'./resources/views/filament/**/*.blade.php',
'./vendor/filament/**/*.blade.php',
],
}
Configuring styles
Add Tailwind's CSS layers to your resources/css/app.css
:
@tailwind base;
@tailwind components;
@tailwind utilities;
Create a postcss.config.js
file in the root of your project and register Tailwind CSS and Autoprefixer as plugins:
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
Automatically refreshing the browser
You may also want to update your vite.config.js
file to refresh the page automatically when Livewire components are updated:
import { defineConfig } from 'vite'
import laravel, { refreshPaths } from 'laravel-vite-plugin'
export default defineConfig({
plugins: [
laravel({
input: ['resources/css/app.css', 'resources/js/app.js'],
refresh: [
...refreshPaths,
'app/Livewire/**',
],
}),
],
})
Compiling assets
Compile your new CSS and Javascript assets using npm run dev
.
Configuring your layout
Create a new resources/views/components/layouts/app.blade.php
layout file for Livewire components:
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="application-name" content="{{ config('app.name') }}">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ config('app.name') }}</title>
<style>
[x-cloak] {
display: none !important;
}
</style>
@filamentStyles
@vite('resources/css/app.css')
</head>
<body class="antialiased">
{{ $slot }}
@filamentScripts
@vite('resources/js/app.js')
</body>
</html>
Publishing configuration
You can publish the package configuration using the following command (optional):
php artisan vendor:publish --tag=filament-config
Upgrading
Upgrading from Filament v2? Please review the upgrade guide.
Filament automatically upgrades to the latest non-breaking version when you run composer update
. After any updates, all Laravel caches need to be cleared, and frontend assets need to be republished. You can do this all at once using the filament:upgrade
command, which should have been added to your composer.json
file when you ran filament:install
the first time:
"post-autoload-dump": [
// ...
"@php artisan filament:upgrade"
],
Please note that filament:upgrade
does not actually handle the update process, as Composer does that already. If you're upgrading manually without a post-autoload-dump
hook, you can run the command yourself:
composer update
php artisan filament:upgrade