Filament 关联管理器不显示 action 按钮的解决办法

白云博客网

Laravel Filament 中的关联管理器,可以非常方便快捷的在资源编辑或者查看页面显示资源的关联数据表格。但是按照官方文档创建关联管理器后,却不显示任何的 action 按钮,如下方代码,已经设置了创建、编辑、删除以及批量操作按钮,但是实际却并未显示。

public function table(Table $table): Table
{
    return $table
        ->recordTitleAttribute('status')
        ->columns([
            Tables\Columns\TextColumn::make('created_at')->label('申请提交时间'),
            Tables\Columns\TextColumn::make('status')->label('申请处理状态')
                ->state(function($record){
                    return Application::$statusMap[$record->status]??'';
                }),
        ])
        ->filters([
            //
        ])
        ->headerActions([
            Tables\Actions\CreateAction::make(),
        ])
        ->actions([
            Tables\Actions\EditAction::make(),
            Tables\Actions\DeleteAction::make(),
        ])
        ->bulkActions([
            Tables\Actions\BulkActionGroup::make([
                Tables\Actions\DeleteBulkAction::make(),
            ]),
        ]);
}

Filament 关联管理器不显示 action 按钮的解决办法

解决办法:在关联管理器中重写 isReadOnly() 函数,返回 false 即可。

public function isReadOnly(): bool
{
    return false;
    //return !Str::of($this->pageClass)->contains('MyViewPageName'); //only on the ViewPage
}

Filament 关联管理器不显示 action 按钮的解决办法

白云博客网

白云博客网

哈哈哈哈哈