【发布时间】:2021-05-19 14:27:20
【问题描述】:
我正在尝试让最新的用户更新文档。
我在文档模型中设置了数据库和关系如下:
public function getLastUpdateUser()
{
return $this->hasOne(User::class, 'id', 'created_by');
}
这个功能正在修补程序中工作。
我正在将文档数据传递给一个组件并显示如下:
<div class="text-sm text-gray-500">
{{ $doc->getLastUpdateUser}}
</div>
这显示了上次更新文档的用户的所有数据。然而问题是我不能从这个集合中选择一个特定的参数。这段代码:
<div class="text-sm text-gray-500">
{{ $doc->getLastUpdateUser->name}}
</div>
产生以下错误:
Attempt to read property "name" on null
尽管如果我删除 -> 名称,我可以看到包括“名称”在内的所有数据。
希望我真的很密集,但我一直在努力弄清楚为什么这会导致几个小时的问题。它在修补程序中完美运行。我与其他模型的关系也完全相同,它们都在同一个组件中工作。
任何帮助将不胜感激。
【问题讨论】:
-
尝试 $doc->getLastUpdateUser()->first()->name
-
您的 getLastUpdateUser 为空。该关系未从数据库中获取任何用户。查看 $doc->getLastUpdateUser 的结果
-
@OMR Weird - 'Call to undefined method App\Models\Privilege::getLastUpdateUser()' -> 为什么要搜索我没有引用的模型?
-
@RajeshPaudel 正如我所说 - 我没有得到空值 - getLastUpdateUser 给了我所有的用户数据,但 getLastUpdateUser->name 结果为空
-
而不是 {{ $doc->getLastUpdateUser->name}} 使用 @if(is_null($doc->getLastUpdateUser)) {{ dd($doc) }} @endif 并检查结果.您可能有一些用户使用空数据,如果您正在迭代集合并且有些用户有空数据,就会发生这种情况
标签: laravel eloquent laravel-blade laravel-8