Я читал документацию laravel 5.1. Я не понимал, как работает группа маршрутов laravel и какая разница между следующими группами маршрутов.Разница между группой маршрутов промежуточного слоя и группой маршрутов имен в laravel 5.1?
Маршрут группы & Названные Маршруты
Если вы используете группы маршрутизации, вы можете указать в качестве ключевого слова в массиве атрибутов маршрута группы, что позволяет установить общий префикс имен маршрутов для всех маршрутов в группе :
Route::group(['as' => 'admin::'], function() {
Route::get('dashboard', ['as' => 'dashboard', function() {
// Route named "admin::dashboard"
}]);
});
Middleware
Чтобы назначить промежуточное программное обеспечение для всех маршрутов в группе, вы может использовать ключ промежуточного программного обеспечения в массиве атрибутов группы. Промежуточное будет выполняться в порядке, можно определить этот массив:
Route::group(['middleware' => 'auth'], function() {
Route::get('/', function() {
// Uses Auth Middleware
});
Route::get('user/profile', function() {
// Uses Auth Middleware
});
});
Namespaces
Другой распространенный вариант использования для маршрутных групп назначая тот же PHP пространство имен для группы контроллеров. Вы можете использовать параметр пространства имен в массиве атрибутов группы, чтобы указать пространство имен для всех контроллеров в группе:
Route::group(['namespace' => 'Admin'], function()
{
// Controllers Within The "App\Http\Controllers\Admin" Namespace
Route::group(['namespace' => 'User'], function()
{
// Controllers Within The "App\Http\Controllers\Admin\User" Namespace
});
});
Поддомен маршрутизация
группа маршрутов также может использоваться для маршрутизации подстановочных суб- домены. Поддоменам могут быть назначены параметры маршрута, аналогичные маршрутным URI, позволяющие вам захватить часть поддомена для использования в вашем маршруте или контроллере. Суб-домен может быть указан с помощью ключа домена на массиве атрибутов группы:
Route::group(['domain' => '{account}.myapp.com'], function() {
Route::get('user/{id}', function ($account, $id) {
//
});
});
Маршрута префиксы
атрибут массива префикса группы может быть использован в качестве префикса каждого маршрута в группе с данным URI. Например, вы можете добавить префикс всех идентификаторов URI маршрута в пределах группы с администратором:
Route::group(['prefix' => 'admin'], function() {
Route::get('users', function() {
// Matches The "/admin/users" URL
});
});
Вы также можете использовать параметр префикса для определения общих параметров для сгруппированных маршрутов:
Route::group(['prefix' => 'accounts/{account_id}'], function() {
Route::get('detail', function ($account_id) {
// Matches The accounts/{account_id}/detail URL
});
});
Ref: http://laravel.com/docs/5.1/routing
Благодарим вас за хорошее объяснение. Я попробую это с одним примером проекта. – vision
как разрешить доступ только администратору? .suppose, если у нас есть несколько пользователей, таких как admin, manager и обычный пользователь. – vision
@tester Thats, когда вы захотите использовать атрибут промежуточного программного обеспечения. – Jeemusu