Как написать laravel 5.8 для контроллеров маршрутов, похожих на laravel 5.1 - PullRequest
1 голос
/ 26 июня 2019

Наличие более 20 контроллеров.Очень сложно настроить каждый маршрут для добавления, редактирования и удаления (также с дополнительными действиями).

Это мой laravel 5.1 rout.php:

Route::controllers([
  'user' => 'UserController',
  'taxes' => 'TaxController',
]);

Есть ли способ?поддерживать эти маршруты в laravel 5.8?

Ответы [ 3 ]

5 голосов
/ 26 июня 2019

Вы можете использовать в массиве In при вызове с использованием маршрутов.как {{route('claimsubmit')}}

Route::resource('claimform',array('as'=>'claimform','uses'=>'UserController@claimform');
4 голосов
/ 26 июня 2019

Вы можете использовать Resource Controller и внедрить в маршруты / web.php. Будет автоматически сгенерировано имя для маршрута

//web.php

Route::resource('user', 'UserController'); 
Route::resource('taxes', 'TaxController'); 

Resource Controller with Action

Редактировать 1

Если вы хотите исключить метод show контроллера для ресурса, вы можете добавить массив внутри метода exc.

Route::resource('taxes', 'TaxController', [
    'except' => ['show']
]);

Далее, если вы хотите получить только выбранные опции, вы можете использовать только .

Route::resource('taxes', 'TaxController', [
    'only' => ['index', 'create', 'store', 'edit']
]);
2 голосов
/ 26 июня 2019

Метод controllers устарел в Laravel 5.2.Из руководства по обновлению:

Неявные маршруты контроллера с использованием Route :: controller устарели.Пожалуйста, используйте явную регистрацию маршрута в вашем файле маршрутов.

1) Используйте маршруты ресурсов

При условии, что ваши контроллеры используют стандартные методы index, store, show и т. Д.Вы можете просто использовать ресурсы маршрутов.Например:

Route::resource('user', 'UserController');

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

Route::resource('user', 'UserController', ['except' => 'show']);

2) Объявить маршруты явным образом

Вы можете следовать руководству по обновлению Laravel 5.2, как указано выше, и вместо этого объявить каждый маршрут явным образом.

3) СоздатьМакрос

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

Illuminate\Routing\Router::macro('controllers', function ($routes) {
    // Create your own implementation of the controllers method.
});

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...