Filament v3
Requirements (Kebutuhan)​
Filament memerlukan hal-hal berikut agar dapat berjalan:
- PHP 8.1+
- Need Extension PHP
extension=zip
- Laravel v10.0+
- Livewire v3.0+
Tim Livewire telah melakukan pekerjaan yang sangat baik dalam membuatnya stabil, namun ini merupakan penulisan ulang lengkap dari Livewire v2. Anda mungkin mengalami isu, oleh karena itu kami merekomendasikan untuk menguji aplikasi Anda secara menyeluruh sebelum menggunakan Filament v3 secara produksi.
Pasang Pembangun Panel Filament dengan menjalankan perintah-perintah berikut di directory proyek Laravel Anda:
composer require filament/filament:"^3.0-stable" -WÂ php artisan
filament:install --panels
Hal ini akan membuat dan mendaftarkan Laravel service provider baru yang disebut app/Providers/Filament/AdminPanelProvider.php
.
Jika Anda mendapatkan kesalahan saat mengakses panel Anda, periksa bahwa penyedia layanan tersebut terdaftar di
config/app.php
Anda. Jika tidak, Anda sebaiknya menambahkannya secara manual ke dalamproviders
 array.
Membuat Resource​
Simple Resource
php artisan make:filament-resource Student --simple
Resource Standard
php artisan make:filament-resource Student
Publishing translations (Mempublikasikan penerjemah)​
php artisan vendor:publish --tag=filament-panels-translations
app.php
 /*
  |--------------------------------------------------------------------------
  | Application Locale Configuration
  |--------------------------------------------------------------------------
  |
  | The application locale determines the default locale that will be used
  | by the translation service provider. You are free to set this value
  | to any of the locales which will be supported by the application.
  |
  */
 Â
  // 'locale' => 'en', // Default
  'locale' => env('LOCALE', 'en'),
.env
LOCALE='id' # create new this is not default env
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- filament/support is locked to version v3.0.88 and an update of this package was not requested.
- filament/support v3.0.88 requires ext-intl * -> it is missing from your system. Install or enable PHP's intl extension.
Problem 2
- filament/support v3.0.88 requires ext-intl * -> it is missing from your system. Install or enable PHP's intl extension.
- filament/widgets v3.0.88 requires filament/support v3.0.88 -> satisfiable by filament/support[v3.0.88].
- filament/widgets is locked to version v3.0.88 and an update of this package was not requested.
To enable extensions, verify that they are enabled in your .ini files:
- D:\xampp\php\php.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-intl` to temporarily ignore these required extensions.
FileUpload
​
FileUpload
field didasarkan pada  Filepond.
use Filament\Forms\Components\FileUpload;
FileUpload::make('attachment')
Mengonfigurasi disk()
dan directory()
penyimpanan​
Secara default, File
akan diunggah (uploaded) secara public
ke disk penyimpanan Anda yang ditentukan dalam file config/filament.php
. Anda juga dapat mengatur FILAMENT_FILESYSTEM_DISK
pada .env
untuk mengubahnya.
return [
// ... kode lainnya
/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| This is the storage disk Filament will use to put media. You may use any
| of the disks defined in the `config/filesystems.php`.
|
*/
'default_filesystem_disk' => env('FILAMENT_FILESYSTEM_DISK', 'public'),
// ... kode lainnya
];
Catatan Untuk menampilkan (preview) gambar dan file lainnya dengan benar,
FilePond
mengharuskan file diberikan dari domain yang sama dengan aplikasi, atau headerCORS
yang sesuai harus ada. Pastikan variabel lingkunganAPP_URL
sudah benar, atau ubah driverfilesystem
untuk menyetel URL yang benar. Jika Anda hosting file di domain terpisah seperti S3, pastikan header CORS sudah disiapkan.Jika tidak tampil saat preview gambar, mungkin
storage:link
tidak bekerja dengan benar. Atau.env
>APP_URL
tidak sesuai misal menggunakanhttp://localhost
atauhttp://pondokmbodo.test
atauhttps://pondokmbodo.test
pastikan protocolhttp
/https
dan domainnya sesuai.
Untuk mengubah disk dan directory untuk field tertentu, dan visibility file, gunakan method disk()
, directory()
dan visibility()
:
use Filament\Forms\Components\FileUpload;
FileUpload::make('attachment')
->disk('s3')
->directory('form-attachments')
->visibility('private'),
FileUpload::make('pdf')
->disk('local')
->directory('pdfs'),
Pengembang bertanggung jawab untuk menghapus file-file ini dari disk jika dihapus, karena Filament tidak mengetahui jika file-file tersebut bergantung pada tempat lain. Salah satu cara untuk melakukan ini secara otomatis adalah dengan observing model event.
Rename File​
use \Livewire\Features\SupportFileUploads\TemporaryUploadedFile;
Forms\Components\FileUpload::make('avatar')
->getUploadedFileNameForStorageUsing(
function (TemporaryUploadedFile $file, Forms\Get $get): string {
$extension = pathinfo($file->getFileName(), PATHINFO_EXTENSION);
return (string) $get('nik') . '-avatar' . '.' . $extension;
})
->image()
->downloadable()
->openable()
->directory('avatars')
Forms Section
​
Section footerActions(actions: [])
​
Section::make(__('Website and Social Media'))
->schema([
 Forms\Components\Repeater::make('socialMediaLinks')
 ->schema([
 // Forms\Components
 ]),
 // orther component
])
->footerActions([
Action::make('saveSocialMediaLinks')
->action(function ($data, $record, $component, $livewire, Forms\Get $get) {
dd([$data, $record, $component, $livewire, $get('socialMediaLinks')]);
// ...
}),
]),
php artisan make:interface Services/SocialMediaLinkService
php artisan make:class Services/Impl/SocialMediaLinkServiceImpl
php artisan make:provider SocialMediaLinkServiceProvider
php artisan config:clear
Masalah pada Extension VSCode
PHP by DEVSENSE
​
Name: PHP Id: DEVSENSE.phptools-vscode Description: All-in-One PHP support - IntelliSense, Debug, Formatter, Code Lenses, Code Fixes, Linting, Refactoring, PHPUnit Tests, Web Server, and more. Version: 1.46.15409 Publisher: DEVSENSE VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=DEVSENSE.phptools-vscode
Jika terjadi masalah PHP2014
itu karena ada tanda kurung kosong ()
. Jadi hapus tanda kurung tersebut.
- Atau anda bisa hiraukan (ignore) pada
setting.json
pada Visual Studio Code. Seperti berikut:
"php.problems.exclude" : {
"resources/views/livewire/" : [2014], // error dari directive @filamentStyles() and @filamentScripts()
}