当我在事件资源中选择事件时,有什么方法可以显示编辑页面底部出现的表格吗? 我在 EventResource 类中有一个 ParticipantRelationManager,它工作得很好,我只是想从列表页面以模式显示表格。
为此,我尝试创建一个自定义操作来触发我想要显示表格的模式:
Tables\Actions\Action::make('ShowParticipants')
->action(fn (Event $record) => $record->participants())
->modalContent(view('filament.pages.view-participants')),
然后在公共静态函数 getPages() 中我返回:
'view-participants' => Pages\ViewParticipants::route('/{record}/view-participants'),
我创建了一个名为 ViewParticipants.php 的类:
namespace App\Filament\Resources\EventResource\Pages;
use Filament\Resources\Pages\Page;
use App\Models\Event;
use Livewire\Component;
class ViewParticipants extends Page
{
public static string $view = 'filament.pages.view-participants';
public function viewData(array $data): array
{
$event = Event::findOrFail($data['record']);
return [
'participants' => $event->participants,
];
}
}
和刀片视图:
<x-filament::page>
@dd('Hello')
</x-filament::page>
我可以通过模式访问该页面,因此会显示@dd('Hello'),但我不知道如何从关系管理器检索数据。
非常感谢。
您可以创建一个新的小部件作为表格列表。
并用
TableWidget
扩展,所以在你的代码中,它将是
use Filament\Widgets\TableWidget as PageWidget;
class YourWidgetClass extends PageWidget
{
}
现在,使用
在您的
ViewParticipants
类中注册这个小部件
protected function getHeaderWidgets(): array
{
return [
YourWidgetClass::class,
];
}
您可以在页眉“getHeaderWidgets()”和页脚“getFooterWidgets()”页面添加小部件
您还可以使用小部件类中的覆盖
Filament\Widgets\TableWidget::getTableQuery()
自定义表查询。
希望这会有所帮助。
快乐编码!..