我正在玩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');
}
答案 0 :(得分:0)
您的代码略微缺少关系中的()
括号!
试试这个
User::whereUsername($username)
->firstOrFail()
->posts()
->orderBy('created_at', 'DESC')
->get();
请注意posts()->