Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 显示具有关系的有说服力的集合中的数据_Laravel_Laravel 5_Eloquent_Blade_Laravel 5.2 - Fatal编程技术网

Laravel 显示具有关系的有说服力的集合中的数据

Laravel 显示具有关系的有说服力的集合中的数据,laravel,laravel-5,eloquent,blade,laravel-5.2,Laravel,Laravel 5,Eloquent,Blade,Laravel 5.2,我试图从一个有说服力的查询中获得如下数据: $submission->find($id)->first()->with('user','clientform')->get() 我将提交内容发送到视图,并尝试从用户模型访问属性,如下所示: {{ $submission->clientform->name }} 但是,Laravel抛出以下错误: Undefined property: Illuminate\Database\Eloquent\Collection::$clientfo

我试图从一个有说服力的查询中获得如下数据:

$submission->find($id)->first()->with('user','clientform')->get()

我将提交内容发送到视图,并尝试从
用户
模型访问属性,如下所示:

{{ $submission->clientform->name }}
但是,Laravel抛出以下错误:

Undefined property: Illuminate\Database\Eloquent\Collection::$clientform
我的查询格式有什么问题吗?

你做得太过分了

让我们把它分解一下:

$submission->find($id);
将返回与主键为
$id
的条目相对应的模型实例

$submission->find($id)->first();
这是不必要的重复;
find
方法已经为您提供了一个条目,无需首先调用

$submission->find($id)->first()->with('user', 'clientform');
这就是你开始走错方向的地方;在模型上调用时,Laravel将再次将该模型转换为查询生成器,即使它已通过调用
find
解决

$submission->find($id)->first()->with('user', 'clientform')->get();
最后,
get
方法将构建器解析为一个
illumb\Support\Collection
,而不管找到的条目数是多少(即,它可以是一个只有一个项的
集合)。不过,值得注意的是,您的查询很可能已通过调用完全重置。这与实例化一个新的
提交
模型并用它构建查询是一样的。这意味着您可能正在使用所有提交条目的集合,而不仅仅是带有
$id
的条目

$submission->find($id)->first();
长话短说,这就是你想要的:

$submission->with('user', 'clientform')->find($id);

它将获取匹配的
$id
,并加载
用户
客户端表单
关系。

感谢您的简要解释!这解决了我所有的问题。