我的模型 Items
与 Rooms
有关,它与 Buildings
有关,它与 Locations
有关 .
简短: Items
belongsTo Rooms
belongsTo Buildings
belongsTo Locations
在 ItemController
的索引函数中,我想显示一个 Items
表 . 我使用Laravel Datatables . 它适用于'simple'表,但我遇到了排序/搜索自定义/附加字段的问题,因为它们当然不在表中 .
基本上我想在显示表中为每个 Item
加入 Room
, Building
和 Location
名称 .
这是我的 Items
型号:
protected $appends = [
'building_title',
'location_title',
'room_title',
];
public function getLocationTitleAttribute() {
return $this->room->building->location->title;
}
public function getBuildingTitleAttribute() {
return $this->room->building->title;
}
public function getRoomTitleAttribute() {
return $this->room->title;
}
这是我的控制器:
public function anyData()
{
return Datatables::of(Item::query())->make(true);
}
为附加字段启用排序/过滤的最佳方法是什么?谢谢你的阅读 .
1 回答
这是我的解决方案(没有使用附加字段):