Ser*_*vic 4 php laravel laravel-filament
如何在具有hasMany关系的filament where表中仅获取一个值?
我有两个数据库表:
products
| ID | 存货单元 |
|---|---|
| 1 | SKU_1 |
| 2 | SKU_2 |
product_descriptions
| ID | 产品编号 | 翻译_id | 姓名 |
|---|---|---|---|
| 1 | 1 | 1 | 欧宝 |
| 2 | 1 | 2 | 沃克斯豪尔 |
在我的产品模型中我有hasMany关系
public function productDescriptions(): HasMany
{
return $this->hasMany(ProductDescription::class);
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时Tables\Columns\TextColumn::make('productDescriptions.name'),它返回所有用逗号分隔的值。在我的例子中“欧宝,沃克斯豪尔”
有没有办法使用回调来操纵/改变返回值?假设只返回第一个值“Opel”?
小智 10
您可以使用计算状态。
Tables\Columns\TextColumn::make('productDescriptions.name')
->getStateUsing( function (Model $record){
return $record->productDescriptions()->first()?->name;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6605 次 |
| 最近记录: |