gpt4 book ai didi

php - Laravel 数据表排序附加字段

转载 作者:行者123 更新时间:2023-11-30 22:18:48 24 4
gpt4 key购买 nike

我的模型 ItemsRooms 相关,后者与 Buildings 相关,后者与 Locations 相关.

短:Items belongsTo Rooms belongsTo Buildings belongsTo Locations

ItemController 的索引函数中,我想显示一个包含 Items 的表格。我使用 Laravel 数据表。它适用于“简单”表格,但我遇到了排序/搜索自定义/附加字段的问题,因为它们当然不在表格中。

基本上我想加入显示表中每个ItemRoomBuildingLocation名称.

这是我的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;
}

这是我的 Controller :

public function anyData()
{
return Datatables::of(Item::query())->make(true);
}

为附加字段启用排序/过滤的最佳方法是什么?感谢您的阅读。

最佳答案

这是我的解决方案(没有使用附加字段):

public function anyData()
{
$items = Item::join('rooms', 'items.room_id', '=', 'rooms.id')
->join('buildings', 'rooms.building_id', '=', 'buildings.id')
->join('locations', 'buildings.location_id', '=', 'locations.id')
->select([
'items.id',
'items.title',
'items.label_number',
'items.fibu_number',
'rooms.title as room_title',
'buildings.title as building_title',
'locations.title as location_title'
]);
return Datatables::of($items)->make(true);
}

关于php - Laravel 数据表排序附加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37345308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com