我想为 spatie 查询生成器编写一个排序类,但我的问题是我有 3 个模型 hotel
room
和 discount
所以现在酒店有很多房间,房间有很多折扣我想按房间可用的最低折扣对酒店进行排序,所以现在这是我尝试过的查询,请注意 $query
正在加载所有酒店:
$data = $query->with('accommodationRoom')
->join('discounts','accommodation_rooms.id','=','discounts.accommodation_room_id')
->get();
但是我得到这个错误:
message: "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'accommodation_rooms.id' in 'on clause' (SQL: select * from
accommodations
inner joindiscounts
onaccommodation_rooms
.id
=discounts
.accommodation_room_id
where exists (select * fromaccommodation_rooms
whereaccommodations
.id
=accommodation_rooms
.accommodation_id
andbed_count
= 5))",
这是因为我正在加载与连接的关系,但无法识别该文件。
最佳答案
使用多个连接语句..
$data = DB::table('accommodation_rooms')
->join('hotels','accommodation_rooms.id','=','hotels.room_id') // replace room_id with your column name
->join('discounts','accommodation_rooms.id','=','discounts.accommodation_room_id')
->select('accommodation_rooms.*','hotels.*','discounts.*')
->get();
关于php - 如何加入 laravel 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58269373/