Как использовать подстановочный знак в маршрутизации администратора в laravel 5

Я использую код ниже для маршрутизации администратора в Laravel.

Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'Admin\AdminController@home');
Route::get('/users/userList', 'Admin\UserController@userList');
Route::get('/users/detail', 'Admin\UserController@detail');
Route::get('/posts/view', 'Admin\PostController@view');
Route::get('/posts/edit', 'Admin\PostController@edit');
Route::get('/posts/add', 'Admin\PostController@add');
});

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

Route :: get (‘/ users / edit’, ‘Admin \ UserController @ edit’);

Поэтому я должен добавить маршрутизацию для каждой функции.

я хочу знать Как использовать подстановочный знак для маршрутизации администратора так что я должен написать маршрутизацию только для контроллера, а не для каждой функции, например.

Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'Admin\AdminController@home');
Route::get('/users/:any', 'Admin\UserController@:any');
Route::get('/posts/:any', 'Admin\PostsController@:any');
});

подстановочный знак заменяет имя функции, и автоматически перенаправляет на эту функцию.

2

Решение

Вы могли бы использовать неявные контроллеры это будет делать то, что вам нужно.

Сначала объявите маршрут для вашего неявного контроллера

Route::controller('users', 'UserController');

Затем на вашем контроллере вы должны следовать соглашению о присвоении имен вашим маршрутам с помощью HTTP-глаголов, используемых для доступа к ним (получить для получения, сообщение для POST, любой для обоих)

class UserController extends Controller {

public function getIndex()
{
//
}

public function postProfile()
{
//
}

public function anyLogin()
{
//
}

}

Примечание о составленном имени метода из документации

Если действие вашего контроллера содержит несколько слов, вы можете получить доступ к действию, используя синтаксис «тире» в URI. Например, следующее действие контроллера на нашем UserController будет отвечать на users/admin-profile URI:

public function getAdminProfile() {}
0

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

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

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