【问题标题】:get ids from join in laravel从加入 laravel 获取 ID
【发布时间】:2022-11-16 22:04:50
【问题描述】:

我正在从加入 laravel 获取数据,但我无法在查询中使用 get 或 pluck 方法获取游乐设施 ID。


$datas = \App\Models\Order::find($id); $new = explode(',',$id);


$orderss = DB::table('orders')
    ->join('jobs', 'jobs.order_id', '=', 'orders.id')
    ->join('rides', 'rides.job_id', '=', 'jobs.id')
    ->whereIn('orders.id', $new)
    ->get();

这是数据 enter image description here

我想从查询中获取 rides.id 的数据 每当我使用 get 或 pluck 方法时,我都会出错

`

$datas = \App\Models\Order::find($id);
$new = explode(',',$id);


$orderss = DB::table('orders')
    ->join('jobs', 'jobs.order_id', '=', 'orders.id')
    ->join('rides', 'rides.job_id', '=', 'jobs.id')
    ->whereIn('orders.id', $new)
    ->get('id');

`

enter image description here

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    在您发布的第二张图片中,错误显示“id”字段不明确,这意味着有多个名为“id”的列,这是真的。 有来自订单表、工作表和游乐设施表的三个“id”列。 所以你需要告诉你想要提取哪个“id”列。 为此,您可以尝试使用以下代码。

    $orderss = DB::table('orders')
    ->join('jobs', 'jobs.order_id', '=', 'orders.id')
    ->join('rides', 'rides.job_id', '=', 'jobs.id')
    ->whereIn('orders.id', $new)
    ->get('rides.id')
    

    或者

    $orderss = DB::table('orders')
    ->join('jobs', 'jobs.order_id', '=', 'orders.id')
    ->join('rides', 'rides.job_id', '=', 'jobs.id')
    ->whereIn('orders.id', $new)
    ->select('rides.id')
    ->get()
    

    这些都应该工作并返回您的游乐设施 ID 集合。

    【讨论】:

      猜你喜欢
      • 2019-02-03
      • 2016-01-20
      • 2016-07-30
      • 2021-05-16
      • 2022-01-07
      • 2020-02-26
      • 2015-04-26
      • 2016-08-30
      • 2016-08-27
      相关资源
      最近更新 更多