【问题标题】:Laravel Query/ Relational database queryLaravel Query/关系数据库查询
【发布时间】:2022-11-17 04:03:23
【问题描述】:

我有两个数据表vehicles 和trips,它们具有一对多关系,并允许每辆车进行多次旅行。 route 是trips 表中的一列。我想查看特定路线的车辆列表,因此我运行了以下查询。

$trips = Trip::with('vehicle')
     ->where('route', $route)
     ->get()->pluck('vehicle');

它工作正常,返回车辆集合。现在我有了车辆集合,我想要每个车型的有效行程信息。我尝试了以下查询。

$trips = Trip::with('vehicle', ['vehicle.activeTrip' => function ($query) {
            $query->where('status', 0);
        }])
        ->where('route', $route)
        ->get()->pluck('vehicle');

status = 0 表示一个活跃的行程。但无论如何它都不成功。我收到消息 Method name must be a string 的错误。谁能帮我解决我的问题?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    你会使用这种语法吗

    
    $trips = Trip::with(['vehicle','vehicle.activeTrip' => function ($query) {
                $query->where('status', 0);
            }])
            ->where('route', $route)
            ->get()->pluck('vehicle');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-25
      • 2021-03-21
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多