Laravel правильное написание группы промежуточного программного обеспечения - PullRequest
0 голосов
/ 09 мая 2020

Я не уверен, правильно ли я написал код, поэтому я хочу, чтобы кто-то мне помог

Я написал это так, но не уверен, работает ли он обычно я не знаю, сможет ли это вызвать ошибку

Интернет. php

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Route::middleware(['auth'])->group(function () {

    Route::resource('categories','CategoriesController');

    Route::resource('posts','PostsController')->middleware(['auth','verifyCategoriesCount']);

    Route::get('trashed-posts', 'PostsController@trashed')->name('trashed-posts.index');

    Route::put('restore-post/{post}','PostsController@restore')->name('restore-posts');

});

verifyCategoriesCount

   public function handle($request, Closure $next)
    {
        if(Category::all()->count() === 0){
            session()->flash('error','You need to add categories to be able to create a post');

            return redirect(route('categories.create'));
        }

        return $next($request);
    }

Мне интересно, правильно ли я написал эти группы промежуточного программного обеспечения

Если я написал плохо, скажите мне, что я ошибаюсь

Ответы [ 2 ]

1 голос
/ 09 мая 2020

Ваш код будет работать без проблем.

Route::resource('posts','PostsController')->middleware(['auth','verifyCategoriesCount']);

^ Вы должны удалить оттуда промежуточное ПО auth, потому что оно уже есть в Route::group выше.

0 голосов
/ 09 мая 2020

Ваш код в порядке, не могли бы вы подробнее объяснить, с какой проблемой вы столкнулись. Промежуточное ПО можно сгруппировать следующим образом.

Route::middleware(['auth'])->group(function () {

    //Group Routes here

});

OR

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

    //Group Routes here

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...