Laravel属于合并吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel属于合并吗?相关的知识,希望对你有一定的参考价值。

我正在尝试为我的Booking模型添加关系。我已经有了一个如下所示的关系:

public function vehicle() {
    return $this->belongsTo(Vehicle::class);
}

哪个适用于bookings.vehicle_id列。但是,现在我正在添加另一个名为bookings.billed_vehicle_id的列,如果它不为空,它将“覆盖”vehicle_id。所以我想做这样的事情:

public function billedVehicle() {
    return $this->belongsTo(Vehicle::class,DB::raw('coalesce(billed_vehicle_id,vehicle_id)'));
}

这可能吗?

如果用belongsTo不可能,我可以以某种方式创建一个支持这个的自定义关系吗?

答案

belongsTo()返回一个查询构建器,以便您可以继续并在其末尾链接->whereRaw()

public function billedVehicle() {
    return $this->belongsTo(Vehicle::class)
        ->whereRaw(DB::raw('coalesce(billed_vehicle_id,vehicle_id)'));
}

以上是关于Laravel属于合并吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以合并一个运行 insert into 的 .sql 文件和一个在 2 列上创建虚拟数据的 Laravel 工厂播种器吗?

laravel特殊功能代码片段集合

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

4.3 合并重复的条件执行片段

Laravel:如何在控制器的几种方法中重用代码片段

我在 laravel 中的递归函数不调用自己