2014-11-24 8 views
0

У меня есть кто-то, создающий кучу шаблонов (тем) для веб-сайта и хочу, чтобы данные были переданы в гибкие представления.Laravel, пользовательские функции для просмотров

Например, с пользователями в системе я хочу иметь возможность предоставлять пользователям x и самым последним пользователям x. В моем контроллере я не хочу передавать эти данные в представление, потому что он может просто нуждаться в топ-5 пользователей, и я обращаюсь к топ-10, или, что еще хуже, я могу получить только 5 лучших, и он хочет 10 лучших.

Я думаю, что было бы два способа сделать это.

1 - Файл справки «помощники», который может содержать такие функции, как. getTopUsers($count) и getNewestUsers($count), которые будут выполнять вызов модели/репо.

2 - Создайте презентацию, чтобы сохранить эти дополнительные функции. Я посмотрел и, кажется, два основных презентационных пакета: https://github.com/ShawnMcCool/laravel-auto-presenter и https://github.com/laracasts/Presenter

Возможно, есть лучший способ?

Там может быть полдюжины из них, для различных моделей ...

ответ

0

Я бы выскочить какой стороне клиента код в ваши мнения и доступ к маршруту действия контроллера (который возвращает JSON по умолчанию) и условно добавьте этот фрагмент в свой вид (через переменную, переданную в представление, определяющее, входит ли человек в систему). Затем вы можете применить фильтр авторизации к своему маршруту, чтобы защитить его.

Примечание: при таком подходе вы можете передать параметры URL-адреса вашему действию. Это означает, что вы можете сказать своему контроллеру, чтобы легче было ограничить результаты.

0

Это очень интересный вопрос, мой друг. То, что я могу думать о следующих

1) дешевый способ, просто запросить 10 или в зависимости от того наибольшего числа, а затем передать переменный счетчик $ к представлению или пусть зрения передать переменные в представление юга

2) вызов api, если вы хотите сделать вызов AJAX, тогда, как предложили другие, вы можете просто создать новый маршрут, getData? Count = 5.

Обычно нелегко удовлетворить все требования и практически говорить на этапе прототипа, было бы более экономичным записывать фиксированную функцию типа getData5 и getData10 или просто создавать две страницы :), это будет намного быстрее, чем придумать новый дизайн архитектуры, а затем понять, что в конце концов никто их не использует.

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