Laravel получить тему, которая имеет последнее сообщение - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь это сделать, получить список тем по тем, у кого есть новое сообщение, поэтому я создаю отношение в модели тем, как это

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' в 'предложении заказа'

как можно решить эту проблему?

1 Ответ

0 голосов
/ 02 июля 2019

Хммм. Попробуйте это

$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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...