首页 文章

Laravel属于Too - 指定字段

提问于
浏览
0

我正在处理belongsTo关系,但需要知道如何指定相关的字段 .

我有报告和汽车表 .

汽车表具有ID字段作为UI . 当在汽车上进行报告时,我希望将汽车从列表中删除,以便我使用示波器 .

在我的报告表中,我将车辆ID存储为“vehicle_id” .

我有一个belongsTo:

public function deliveryProfitReports()
{
    return $this->belongsTo('DeliveryProfitReport', 'vehicle_id');
}

哪个是返回错误,因为它在cars表中查找vehicle_id字段 .

如何更改此功能,以便指定车辆ID为vehicle_id .

编辑:修正了错误:

public function deliveryProfitReports()
{
    return $this->belongsTo('DeliveryProfitReport', 'id', 'vehicle_id');
}

但是这个范围:

public function scopeNoDeliveryReports($query) {
    return $query->doesntHave('deliveryProfitReports');
}

$cars = Car::orderBy('RegistrationNumber')
    ->noDeliveryReports()
    ->get();

不能按预期工作并删除行...

接下来是什么?

1 回答

  • 0

    如果外键在另一个表中,您实际上想要使用 hasOne

    return $this->hasOne('DeliveryProfitReport', 'vehicle_id');
    

    (此外,由于数据类型错误,OP也存在数据库问题)

相关问题