Laravel Filament Table Actions中url()方法无法正常工作求助
问题原因及解决方法
你的问题出在getTableActions方法中,传递给路由的模型实例没有被正确解析为主键ID。虽然getTableRecordUrlUsing能正常工作,但Filament在处理表格动作的url闭包时,对模型实例的解析逻辑略有差异,导致['id' => $r]无法正确提取ID参数。
修复方案
修改getTableActions中的路由调用方式,明确传递模型的主键ID,或者直接将模型实例传给路由函数(Laravel会自动解析主键):
方案1:明确传递ID
protected function getTableActions() { return [ Action::make('edit') ->url(fn (Recipe $r): string => route('recipe.show', ['id' => $r->id])), ]; }
方案2:直接传递模型实例(更简洁)
protected function getTableActions() { return [ Action::make('edit') ->url(fn (Recipe $r): string => route('recipe.show', $r)), ]; }
两种方法都能让路由正确获取到id参数,解决缺失参数的错误。
内容的提问来源于stack exchange,提问作者thc1967
相关产品推荐
相关产品推荐

