我正在尝试这样做,获得谁有新帖子的主题顺序列表,所以我在主题模型中创建了这样的关系
public function latest_post()
{
return $this->hasOne(Post::class)->latest();
}
然后我使用类似的查询
Topic::where('locale',$this->locale)->with('latest_post')->paginate(15)->sortByDesc('latest_post.created_at');
但这给我一个错误
Collection :: render不存在
所以我将sort
更改为orderBy
Topic::where('locale',$this->locale)->with('latest_post')->orderBy('latest_post','DESC')->paginate(15);
但这也给了我另一个错误
“订单子句”中的未知列“ latest_post”
如何解决这个问题?
答案 0 :(得分:0)
嗯。试试这个
$topic = Post::orderBy('created_at','desc')->first()->join('topics', 'topics.id', '=', 'posts.topic_id')->first();
或者在您的帖子模型中:
public function Topic()
{
return $this->belongsTo(Topic::class, 'topic_id');
}
要获取上一个活动主题:
$topic = Post::orderBy('created_at','desc')->first()->Topic;