Laravel从多个模型传递变量

时间:2015-04-20 17:31:06

标签: laravel-5

我有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中却没有。

2 个答案:

答案 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