不能 select 来自 eloquent 关系集合的特定参数 - 在 tinker 中有效
Can't select specific paramter from eloquent relationship collection - works in tinker
我正在尝试让最新的用户更新文档。
我在文档模型中设置了数据库和关系,如下所示:
public function getLastUpdateUser()
{
return $this->hasOne(User::class, 'id', 'created_by');
}
此功能在 tinker 中有效。
我正在将文档数据传递给组件并显示如下:
<div class="text-sm text-gray-500">
{{ $doc->getLastUpdateUser}}
</div>
这显示了上次更新文档的用户的所有数据。但是问题是我不能 select 这个集合中的特定参数。此代码:
<div class="text-sm text-gray-500">
{{ $doc->getLastUpdateUser->name}}
</div>
产生以下错误:
Attempt to read property "name" on null
尽管我可以看到所有数据,包括 'name' 如果我删除 ->name。
希望我真的很密集,但我一直在努力弄清楚为什么这会导致几个小时的问题。它在修补程序中完美运行。我也与其他模型有完全相同的关系,这些模型都在同一个组件中工作。
如有任何帮助,我们将不胜感激。
我认为问题出在你的关系定义上:
hasOne关系中的第二个参数应该是外键,关系应该是:
public function getLastUpdateUser()
{
return $this->hasOne(User::class, 'created_by');
}
对于将来登陆此 post 的任何人。
这个问题是 html 抽象的产物。
我已经将 table 抽象到一个组件中,我在相关页面上多次调用了该组件。
然后我为这些 table 提供了它们的特定数据集,并开始着手制作第一个。
不幸的是,这个错误是由 table 我还没有开始处理的,它是用一个没有 getLatestUserUpdate 模型的数据集提供的。
每次抛出错误时,我都认为这是一个问题我正在处理的代码。
愚蠢的错误。
感谢大家的帮助。
我正在尝试让最新的用户更新文档。
我在文档模型中设置了数据库和关系,如下所示:
public function getLastUpdateUser()
{
return $this->hasOne(User::class, 'id', 'created_by');
}
此功能在 tinker 中有效。
我正在将文档数据传递给组件并显示如下:
<div class="text-sm text-gray-500">
{{ $doc->getLastUpdateUser}}
</div>
这显示了上次更新文档的用户的所有数据。但是问题是我不能 select 这个集合中的特定参数。此代码:
<div class="text-sm text-gray-500">
{{ $doc->getLastUpdateUser->name}}
</div>
产生以下错误:
Attempt to read property "name" on null
尽管我可以看到所有数据,包括 'name' 如果我删除 ->name。
希望我真的很密集,但我一直在努力弄清楚为什么这会导致几个小时的问题。它在修补程序中完美运行。我也与其他模型有完全相同的关系,这些模型都在同一个组件中工作。
如有任何帮助,我们将不胜感激。
我认为问题出在你的关系定义上:
hasOne关系中的第二个参数应该是外键,关系应该是:
public function getLastUpdateUser()
{
return $this->hasOne(User::class, 'created_by');
}
对于将来登陆此 post 的任何人。
这个问题是 html 抽象的产物。
我已经将 table 抽象到一个组件中,我在相关页面上多次调用了该组件。
然后我为这些 table 提供了它们的特定数据集,并开始着手制作第一个。
不幸的是,这个错误是由 table 我还没有开始处理的,它是用一个没有 getLatestUserUpdate 模型的数据集提供的。
每次抛出错误时,我都认为这是一个问题我正在处理的代码。
愚蠢的错误。
感谢大家的帮助。