📌

laravel filamentでGetパラメーターを取得

2023/12/06に公開

今回は新規作成画面でGETパラメーターを取得したい

リソース名はDocumentとする。

/admin/documents/create?project_id=2
のproject_id=2を取得したい場合、

CreateDocument.phpでパラメーターの受け皿を用意

app\Filament\Resources\DocumentResource\Pages\CreateDocument.php
class CreateDocument extends CreateRecord
{
    protected static string $resource = DocumentResource::class;

+    public $project_id = null;
+    protected $queryString = ['project_id'];

}

リソースから利用する

use Livewire\Component as Livewire;
Components\Select::make('project_id')->label('プロジェクト')
->options(
    return  Project::all()->pluck('name', 'id');
)
->default(function(Livewire $livewire){
    //$livewireはページのLivewireCompornent
+    dd($livewire->project_id);
);

のように取得する。

これは、FilamentというよりもLiveWire側の機能で、公式は以下
https://laravel-livewire.com/docs/2.x/query-string

Discussion