无法获得相关表的属性

时间:2014-05-26 10:32:19

标签: php laravel eloquent

我正在Laravel创建一个网站。我目前有两个表:userscities。 在我的模型中,我将两个表链接如下:

//User.php
public function city()
{
    return $this->belongsTo('City', 'id', 'city_id');
}

//City.php
public function users() 
{
    return $this->hasMany('User');
}

但是当我试图获取用户所在城市的名称时,我收到了错误消息。我使用以下代码列出所有用户:

<?php $i=0 ?>
@foreach ($users as $user)
<tr>
    <td>{{{ ++$i }}}</td>
    <td>{{{ $user->firstname }}} {{{ $user->name }}}</td>
    <td>{{{ $user->city()->name }}}</td>
</tr>
@endforeach

当我运行它时,这是我尝试访问$user->city()->name的行上的错误:

ErrorException

Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$name (View: /var/www/kljwaregem_2014/app/views/leden/simplelist.blade.php)

我不知道我做错了什么,我按照documentation中的所有步骤进行了操作。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

要定义OneToMany关系的反转,请使用belongsTo而不是hasOne,如the documentation中所述。