2017-01-26 3 views
0

Для записи блога, учитывая post_id из 4 который имеет 1000 комментарии, я могу получить comment_id из 400 с помощью красноречивых, как это:Laravel 5.3 - Красноречивый набор с определенной точкой с идентификатором?

$comment = Comment::where('id', 400)->where('post_id', 4)->first();

Вопрос заключается в том, как я могу получить за тот же пост, то кусок из 10 комментариев, начиная с comment_id400 с предыдущими 9 комментариями (всего 10).

Это для ссылки на страницу, исходя из определенного момента в комментариях, в данном случае 400. Если есть комментарии до/после 400 для этого сообщения, мне понадобятся предыдущие/следующие URL-адреса страниц, если они существуют.

Так, например, 400 имеет больше комментариев вокруг него на этот пост, так что я должен вернуться комментарии с comment_id400 - 390 из красноречивый, с этим пагинацией (псевдо-код):

next_page_url: "http://laravel.app?page=61", 
prev_page_url: "http://laravel.app?page=59" 

Что бы красноречивым запрос чтобы справиться с этой ситуацией в laravel?

+0

Почему на основе идентификатора комментария? Попытка понять прецедент. – Oddman

+0

@Oddman [Здесь используется прецедент] (http://stackoverflow.com/questions/26798427/load-earlier-msg-of-conversation), но вы хотите сделать это в Laravel. Вместо двух ссылок на страницы, возможно, для загрузки комментариев '400'-'410' отлично (это работает), но если для' post_id' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '', предыдущий комментарий к этому 'post_id', как узнать об этом, чтобы мы могли показать кнопку более ранних комментариев загрузки. Есть ли способ справиться с этим один раз с красноречивым? Как вы предлагаете лучший способ справиться с этим? – Wonka

+0

Да, если вам нужны следующие/обратные ссылки, вы можете просто выполнить запрос, который найдет предыдущие 10 записей (т. Е. ID <400) и вернуть true или false, выполнив -> exists(). Затем вы можете указать соответствующую ссылку для разбивки на страницы. – Oddman

ответ

1

Я не уверен, почему вы сделали бы это на основе ID - я бы просто оттолкнул его на 400 точек. Однако здесь:

Comment::where('id', '<', 400)->orderBy('id', 'desc')->take(10)->get(); 

Это даст вам 10 предыдущих комментариев.

+0

Также, как насчет предыдущих 10 комментариев, если они выходят в качестве URL-адреса? Я сделал это следующим образом: '$ comments = Comment :: where ('id', '<=', 400)-> где (' post_id ', 4) -> orderBy (' id ',' desc ') -> paginate (10);' и это дает результат, но отображается только следующий URL-адрес, нет предыдущего URL-адреса. Мне нужно знать, есть ли предыдущие элементы с URL-адресом страницы, чтобы извлечь их, если это необходимо, чтобы загрузить больше предыдущих/следующих комментариев из точки «400» , – Wonka

 Смежные вопросы

  • Нет связанных вопросов^_^