当前位置: 首页 > 知识库问答 >
问题:

Laravel归属-指定字段

濮阳君浩
2023-03-14

我在一个归属关系,但需要知道如何指定哪些字段相关。

我有一张报告和一张汽车桌子。

car表具有ID字段作为UI。当一个报告是关于一辆车,我希望这辆车从一个列表中删除,所以我将使用一个范围。

在我的报表表中,我将cars ID存储为'vehicle_id'。

我有个家当:

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个答案

韩禄
2023-03-14

如果外键在另一个表中,则您实际上要使用HasOne:

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

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

 类似资料:
  • 我正在尝试使用“语言”中的验证属性 我有这个: 要显示错误,请执行以下操作: 以及控制器中的验证: $messages数组: 有人能告诉我我做错了什么吗。我希望:attribute name在attributes数组(语言)中被替换为“nice name”。 谢谢 编辑: 我注意到问题是我从来没有为我的Laravel项目设置默认语言。当我设置语言为'NL'上面的代码工作。但是,当我设置我的语言时,

  • 我试图在我的应用程序中创建一个文件的临时URL。我能够上传文件到S3桶,我能够使用方法

  • 我知道这个问题被讨论,解决或关闭。 但我想问的是,为什么数字是191? 我试过:如果192,错了。191,好的。在此之后,我还编辑database\migrations\xxx\u user\u table.php 更改此设置 要成为 然后运行php工匠迁移,就可以了。使用一些mysql工具查看用户表的模式,名称的长度是varchar实际上是255,其他列是191。 我看到了这些文章 @https

  • 通常情况,我们不需要获取数据表的所有字段内容,而是部分字段。那么使用语句如下: $Model->field('id,title')->select();

  • 我正在使用SpringMVC 3.2.4,并希望使用Jackson2将对象序列化为JSON输出。 对象具有递归属性。如果我尝试使用默认的Jackson ObjectMapper序列化它,我会得到一个递归错误。我意识到我可以使用来防止递归,然而,我实际上希望递归能够使在胡子模板中解析更容易。然而,我想限制递归级别。 是否需要指定Jackson序列化程序只递归1级?如果我需要创建自己的序列化程序,我可

  • 指定文字编码 可指定文字编码。一般情形下会自动判别,并无特意指定的必要。 1. 从选单列中选择[显示] > [文字编码]。 2. 选择希望指定的文字编码。 提示 仅可指定已开启网页的编码。于选择更新网页﹐或开启其他分页后﹐此指定即会自动解除。

  • 我有如下表格和: 我的型号分类如下:和: 这样做

  • 我在这个网站上尝试了很多解决方案,但问题仍然没有解决。这个问题是由于Android X库造成的。当我添加AndroidX时,这个问题得到了解决,但它带来了新的问题。如何解决这个问题? 早些时候这个错误来了: 添加后,出现以下错误: 合并错误(在Android清单中): 错误:在属性android:appComponentFactory的第2行指定了tools:replace,但在第1行的应用程序主