显示一个Filament资源的关系数据



我已经开始使用Filament PHP创建一个基于Laravel的内部网应用程序,但偶然发现了一个问题,我无法使用官方文档回答自己:

在资源的视图页中显示关系数据最简单的方法是什么?

我有两个资源ClientResource和ProjectResource,这导致两个Laravel关系:

客户端模型:

public function projects(): HasMany
{
return $this->hasMany(Project::class);
}

项目模型:

public function client(): BelongsTo
{
return $this->belongsTo(Client::class);
}

我已经实现了BelongsToSelect项目资源内用于分配客户端的字段:

ComponentsBelongsToSelect::make('client')
->relationship('client', 'first_name')
->required(),

到目前为止一切都很好,但是(显然)我在项目的视图页面上看到的是显示客户名字的禁用选择字段。我想把所有相关领域都列出来。我是否错过了文档中的关键内容,或者解决这个问题的最佳方法是什么?

我已经看了一下关系管理器,但似乎只有一个belongsToMany关系(nobelongsTo)) .

在select组件中也可以这样指定关系:

Select::make('client_id')
->relationship('client', 'first_name');

您还可以访问雄辩的查询生成器实例,如下所示:

Select::make('client_id')
->relationship('client', 'first_name', 
fn (Builder $query) => $query->where('status', 'actif'))
);

文档参考:https://filamentphp.com/docs/2.x/forms/fields#populating-automatically-from-a-relationship

相关内容

  • 没有找到相关文章

最新更新