gpt4 book ai didi

Laravel 列名和关系名相同

转载 作者:行者123 更新时间:2023-12-01 13:43:53 25 4
gpt4 key购买 nike

我可以让列名和关系名相同吗?

例子:

我在 中有一列edited_by mack.php 型号 我想从用户表中获取edited_by 中提到的用户的完整详细信息,所以我有如下关系

public function edited_by(){
return $this->hasOne('App\User','id','edited_by');
}

现在,如果我尝试访问 $model->edited_by->first_name 它的抛出错误“试图获取非对象的属性”

除了名称不同,还有什么办法可以解决吗?

最佳答案

简短的回答是否定的 .您不能让它们具有相同的名称,因为如果找到该列将始终返回,并且如果找到具有该名称的列,则永远不会返回该关系。

将列名更改为 user_id 比edited_by 更合适。它更具描述性,也是 Eloquent 将寻找的默认 id。同样,将关系名称命名为 更有意义。用户()而不是 edit_by() 因为它返回一个用户模型。

稍长且完全错误的答案是您可以访问与 的关系。 $model->edited_by()->first_name 这将导致不必要地运行额外的查询。

关于Laravel 列名和关系名相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com