Маршруты Laravel и правильный рабочий процесс

Я только недавно попал в MVC и Laravel и у меня возник вопрос о том, как правильно обращаться с вещами.

Допустим, я создаю сайт с его CMS или чем-то подобным.

У меня есть целевая страница www.website.com с CMS по адресу www.website.com/cms/

В CMS есть меню навигации, каждый элемент которого представляет собой таблицу в БД.

Допустим, — Счета | Статьи | Меню — при нажатии на каждый пункт должен появиться список записей в каждой из таблиц.

Для этого я делаю:

а) есть маршрут

Route::get('cms/{requestedtable}', 'PagesController@CmsCreate');

И на этом маршруте я бы

switch($requestedtable)
case 'accounts';
$data = Account::all();
case 'menu'
$data = Menu::all();

б) иметь маршрут для каждого пункта

Route::get('cms/accounts/', 'AccountController@index');

public function index() {

Account::all()

То же самое для вставки, обновления и удаления. Было бы правильнее создать маршрут для каждого из событий

Route::get('cms/accounts/', 'AccountController@index');
Route::get('cms/accounts/create', 'AccountController@create');
Route::get('cms/accounts/update', 'AccountController@update');

Или только один маршрут, но с использованием другой функции

Route::get('cms/{{requestedtable))/update', 'PageController@CmsUpdate');

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

Спасибо за любой вклад по этому вопросу.

1

Решение

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

Также я заметил, что вы заинтересованы в выполнении типичных операций CRUD, используя Контроллер ресурсов это хороший способ сохранить ваши routes.php чистый. Обратите внимание, что хотя контроллеры ресурсов обычно используются в API REST, их можно использовать в любом веб-приложении.

Вот как будет выглядеть ваш route.php:

Route::group(['prefix' => 'cms'], function()
{
Route::resource('Accounts','AccountsController');
Route::resource('Articles','ArticlesController');
Route::resource('Menu','MenuController');
});

И это будут доступные маршруты:
маршрут ремесленника php: список

Обратите внимание, что вы также можете использовать подстановочные знаки на контроллерах ресурсов, как указано Вот:

Route::resource('{resource}', 'PagesController');
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]