2015-11-21 3 views
0

После опроса acl tutorial Я наткнулся на то, что не могу понять.Поведение маршрутизации в laravel

В Laravel я создал свой маршрут в соответствии с обучающей и изменил его, чтобы соответствовать контроллер аутентификации Laravel (как я уже использовал, что перед установкой его с bestmomo) по адресу:

$router->get('/', [ 
    'uses' => 'Auth\[email protected]', 
    'as' => 'admin.user.login', 
    'middleware' => ['acl:login'] 
]); 

Как это он не найти мой маршрут дает мне ошибку

NotFoundHttpException в RouteCollection.php линии 161:

Если я добавлю следующий маршрут:

Route::get('/login', [ 
'as' => 'login', 'uses' => 'Auth\[email protected]' 
]); 

Это хорошо работает.

Зачем нужен второй маршрут? Почему первая не может стоять одна?

+0

Помог ли ответ ниже? –

+0

нет не есть, другой проблема. Я должен исправить это первым, а затем я могу проверить ваше решение. FatalErrorException в строке User.php 15: Объявление App \ User :: can() должно быть совместимо с Illuminate \ Contracts \ Auth \ Access \ Authorizable :: can ($ ability, $ arguments = Array) – davejal

+1

Вы должны убедиться, что подпись 'can()' совпадает с интерфейсом 'Authorizable' –

ответ

2

Я думаю, что в блоге, который вы используете, есть ошибка.

Правильный способ вызова маршрут вам нужно, это:

Route::get('/', [ 
    'uses' => 'Auth\[email protected]', 
    'as' => 'admin.user.login', 
    'middleware' => ['acl:login'] 
]); 

Примечание: Вы можете также использовать вспомогательный метод и просто позвоните:

get('/', [ 
    'uses' => 'Auth\[email protected]', 
    'as' => 'admin.user.login', 
    'middleware' => ['acl:login'] 
]);; 

Единственный способ, которым я могу видеть код, о котором вы говорили, работает, если в верхней части файла маршрутов находится следующее:

$router = app('router'); 
+0

с этим решением. Мне не хватает всего учебника по acl ... или мне не хватает того, что вы делаете. Где будет '' middleware '=> [' acl: login '] 'действовать? – davejal

+0

это как раз то, что у меня есть в моем вопросе – davejal

+0

нет, вы этого не делаете. У вас $ router-> get. Не Маршрут :: get - –

Смежные вопросы