php - 如何加入 laravel 关系

标签 php mysql laravel

我想为 spatie 查询生成器编写一个排序类,但我的问题是我有 3 个模型 hotel roomdiscount 所以现在酒店有很多房间,房间有很多折扣我想按房间可用的最低折扣对酒店进行排序,所以现在这是我尝试过的查询,请注意 $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 join discounts on accommodation_rooms.id = discounts.accommodation_room_id where exists (select * from accommodation_rooms where accommodations.id = accommodation_rooms.accommodation_id and bed_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/

相关文章:

javascript - 在我的 morris.js 图表中,X 轴上的日期在月日日期之前添加数字 19

php - 如何在javascript中显示目录的所有图像?

php - 使用 PHP/CodeIgniter 上的表单按钮调用 Controller 的功能

mysql - 如何在 UPDATE 语句中使用 if/else

mysql - Apache 的 htdocs 文件夹发生了什么变化?

Laravel:如何为本地化创建正确的路由组?

php - Laravel 查询生成器,其中 NULL 没有结果

javascript - jQuery 中的 PHP 问题为 ' "

PHP mySQL 按日期排序帖子

php - 带有 Eloquent 的 Laravel 不会在数据库中保存模型属性