Упрощение генерации URL для ресурсоемкого контроллера

Сегодня я столкнулся с ситуацией, когда мне нужно минимизировать написание route('resources.index)` и так далее, все, что связано с ресурсоемкими маршрутами.

Может ли быть проще, если на основе заданной модели я могу просто получить URL ресурсного маршрута модели, не задумываясь о том, как называется ресурсный маршрут?

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

Например, если модель AppModelsUser, то ее URI всегда в нижнем регистре, во множественном числе и в шашлычном регистре — http://domain.com/users для users.index, http://domain/users/1 для users.show.

Это довольно просто, если вы разрабатываете небольшое приложение.

Но если вы работаете с огромным приложением, в нем множество модулей и функций, лучше всего сохранить их последовательность и простоту поддержки.

Вот как я решил эту проблему:

Использовать этот признак в любых моделях, и его использование:

С помощью этого решения я делаю две вещи ясными:

  1. Стандартное соглашение об именовании для моих URI.
  2. Простой способ получения URI модели.

И абсолютное правило:

  1. Ваша модель должна использовать трейты.
  2. Ваш маршрут для модели должен быть ресурсоемким.

Другой вопрос, нужно ли применять это ко всем моделям? Да, но работайте умно — создайте базовую модель, которая в дальнейшем будет расширять все модели от базового класса. Опять же, вы сохраняете модель для дальнейшего использования.

Оцените статью
devanswers.ru
Добавить комментарий