Laravel关系返回模型id不依赖于模型本身

时间:2015-10-05 16:10:51

标签: php laravel laravel-5.1

考虑这种关系:

// in Post model
public function user()
{
    return $this->belongsTo('App\Models\User');
}

我认为$post->user->name应该足以获得帖子所有者的名字。但是$post->user返回用户ID而不是用户模型。所以我必须使用:

$post->user()->first()->name;

不应该$post->user归还帖子的所有者吗?

1 个答案:

答案 0 :(得分:0)

用户是属于帖子还是帖子属于用户?

从我的角度来看,用户有很多帖子,帖子属于用户。所以我认为你搞砸了你的关系。

class Post extends Model
{
  public function user()
  {
    return $this->belongsTo('User');
  }
}

class User extends Model
{
  public function posts()
  {
    return $this->hasMany('Post');
  }
}

然后,一旦您有帖子,您就可以访问它的用户。

$userName = Post::find(1)->user->name;