2016-10-24 3 views
4

Моя форма проверки не отображала ошибок на моем маршруте posts/create. Я Googled решение и обнаружили, чтоФорма проверки не отображает результаты на laravel

Route::group(['middleware' => 'web'], function() { 
    Route::resource('/posts','PostsController'); 
}); 

может быть изменен на

Route::group(['middlewareGroups' => 'web'], function() { 
    Route::resource('/posts','PostsController'); 
}); 

Я сделал, что и эта проблема теперь решена. Я хочу спросить, считается ли это хорошей практикой, чтобы изменить это так?

Кроме того, если я удаление этой строки из моих маршрутов он работает:

Route::group(['middleware' => 'web'], function() { 

Может кто-нибудь сказать мне, что на самом деле происходит?

ответ

0

Одной из причин может быть то, что web промежуточное программное обеспечение применяется два раза в вашем случае. По умолчанию Laravel добавляет веб-промежуточное ПО в app/Providers/RoutesServiceProvider.php, и вы снова добавляете его в свои маршруты.php Попробуйте удалить web промежуточное программное обеспечение из ваших маршрутов.php.

+0

Да, он работает после того, как я удаляю их. Спасибо за ответ. У меня есть сомнения. Если мы посмотрим на ядро, то «web =>» находится в «защищенной $ middlewareGroups ", а не в" $ middleware "..why? – Saiiif

+0

Это потому, что веб-группа состоит из нескольких других промежуточных программ, поэтому мы должны использовать «защищенные группы middlewareGroups», иначе мы использовали «защищенное промежуточное ПО» для единого промежуточного программного обеспечения. –

+0

oh ok Я получил благодарность за ответ – Saiiif

0

Хорошо, документация Laravel 5.3 объясняет это подробно. Вот ссылка. https://laravel.com/docs/5.3/middleware#middleware-groups

Но чтобы ответить на ваш вопрос, эта линия:

Route :: группа ([ 'промежуточного' => 'веб'], функция() {

не разрешить любой запрос на доступ к маршрутам внутри, только если они подтверждают условие, которое находится внутри промежуточного программного обеспечения «web».

Это то, как работает laravel. Документ дает более подробную информацию о каждом компоненте в рамках.

+0

Спасибо за ответ .. в моем случае, когда я сгруппировал все маршруты в Маршрут :: группы (функция [ «промежуточного» => «Интернет»],() { он не отображает ошибки на страница затем я посмотрел на ядро ​​и обнаружил, что «веб» на самом деле находится в «защищенной промежуточной группе». Итак, я сгруппировал его в Route :: group (['middlewareGroup' => 'web'], function() { Был ли этот подход правильным, или я должен оставить его разгруппированным? – Saiiif

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