2015-06-06 2 views
2

Я использую код, который ниже для маршрутизации admin в laravel.Как использовать wild card в admin routing в laravel 5

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

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

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

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

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

Route::group(['prefix' => 'admin'], function() { 
Route::get('/', 'Admin\[email protected]'); 
Route::get('/users/:any', 'Admin\[email protected]:any'); 
Route::get('/posts/:any', 'Admin\[email protected]:any'); 
}); 

wild card заменить имя функции и автоматически перейти к этой функции.

ответ

0

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

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

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() {}