Как правильно реализовать кнопку «показать еще» на laravel?
Привет!
Изучаю ларавел, делаю учебный сайт и тут решил реализовать функцию вывода статей по нажатию кнопки "показать еще". Идея не нова, думаю принцип многим будет понятен. Так вот, в голове сидит только такой порядок действий: Есть контроллер, который обрабатывает главную страницу со статьями, скажем, с 10-ю. (по кнопке "показать еще" подгрузятся еще 10). В контроллере делаем вывод статей из бд, направляем информацию во view и там циклом выводим. Теперь при нажатии на "показать еще" у нас отправляется аякс запрос, который обрабатывает уже другой контроллер. Там мы проверяем сколько страниц уже было подгружено (инфа идет из аякса) и берем из настроек шаг, в нашем случае, 10 статей. Далее в контроллере прямо циклом выводим их, пакуем в json и отправляем отправителю. Идею уже реализовал все работает как часы. Но чую это не совсем правильное решение. Например, сегодня мне понадобилось изменить внешний вид вывода статей. Мне пришлось это делать и во view, и в контроллере, который обрабатывает аякс. Так как можно решить эту задачу проще?
Вы можете во втором контроллере вместо отправки статьей json'ом, вернуть вьюху, которая содержит только вывод статей (partial). В первой вьюхе тогда тоже используйте этот partial. И если вам нужно будет что-то изменить, то будете это менять в одном месте (DRY).
Всё намного проще, заходя на страницу получаете по аякс посты в виде массива, далее при нажатии на кнопку добавляете в этот массив новые данные через метод push() или concat()