我在 php Filament 应用程序中有一个名为 LoadResource 的资源。此资源上的标准开箱即用编辑操作工作正常 - 但它不会响应我在编辑操作语句中放置的任何生命周期挂钩。
我的编辑操作如下所列:
->actions([
Tables\Actions\ActionGroup::make([
Tables\Actions\ViewAction::make(),
EditAction::make()
->before(function () {
dd('test');
}),
Tables\Actions\DeleteAction::make(),
])
])
我正在使用以下内容:
use Filament\Actions\EditAction;
然而,我从未访问过 beforeFormFilled() 闭包中的函数。任何帮助的想法将不胜感激。
期待 beforeFormFilled() 中的函数运行。
我尝试将生命周期挂钩放置在资源的编辑页面上 - 成功了。但是,我不知道如何从编辑页面引用模型
$this->
引用编辑页面,而不是表单或模型。当我尝试将模型传递到编辑页面时,出现错误。
作为参考,以下方法确实有效 - 解决了上面提到的麻烦:
protected function beforeSave (array $data): void
{
dd($data);
}
->afterFormFilled(function (EditAction $action, $record) { dd($记录); // 如果需要,例如从另一个表中获取数据,但这通常发生在表单定义本身中。 }) ->表格([ Forms\Components\Select::make('fromaccount') ->label('来自帐户') ->选项(函数(){ // 使用where条件获取账户列表 return Account::where('account_id', 33) // 在此处应用您的条件 ->pluck('name', 'id') // 检索选择选项的名称和 id ->toArray(); // 转换为数组用于选项方法 }) ->默认(函数($记录){ // 根据正在编辑的记录设置默认值 返回 $record->account_id; // 假设'fromaccount_id'是存储帐户ID的字段 }),