我有2个型号 用户 客户
每个用户都有许多客户(即帐户)
用户模型
public function customer() {
return $this->hasMany('App\Customer', 'id','customer_id');
}
但是当我尝试输出时:
$user->customer->name
我收到错误消息:
Undefined property: Illuminate\Database\Eloquent\Collection::$name
当我使用这个时,我用JSON获得整个客户记录输出。
$user->customer
所以关系正在发挥作用,但显然我错过了一些东西。我确信这是正确的方法。我发誓这在Laravel4.2中有效,但现在我在Laravel 5中却没有。
答案 0 :(得分:0)
正如错误和下面的链接所说,它返回一个集合(hasMany)而不是单个对象,您需要循环访问集合或根据索引在集合中进行直接访问。
也就是说......做这件事吗?..
$user->customer[0]->name
http://laravel.io/forum/04-10-2014-undefined-property-illuminatedatabaseeloquentcollectionitem
答案 1 :(得分:0)
您应该循环客户,如果您希望在laravel视图中显示客户,您可以执行以下操作
@foreach
($user->customer as $cust)
{{$cust->name}}
@endforeach