Laravel雄辩地抓住用户订购的帖子

时间:2014-10-11 04:19:58

标签: laravel eloquent

我正在玩Laravel,我有这个代码。它根据提供的用户名返回所有用户帖子。

控制器

 $posts = User::whereUsername($username)->firstOrFail()->posts;

 return View::make('users.index')->with($posts);

视图

 @foreach($posts as $post)

      {{ $post->title }}
      {{ $post-owner->username }}
      // etc etc

 @endforeach

如何在查询中添加orderBy()?我希望这些帖子最先订购。这是我的尝试:(

User::whereUsername($username)->firstOrFail()->posts->orderBy('created_at', 'DESC');

或者有更好的方法可以做到这一点吗?

修改

用户模型

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

发布模型

public function owner()
{
    return $this->belongsTo('User', 'user_id');
}

1 个答案:

答案 0 :(得分:0)

您的代码略微缺少关系中的()括号!

试试这个

User::whereUsername($username)
->firstOrFail()
->posts()
->orderBy('created_at', 'DESC')
->get();

请注意posts()->

上的括号