@sicko
Простите за мой русский

Корректно ли так определять маршруты?

Добрый день.

Подскажите пожалуйста, по роутингу.

Если мы определим группу маршрутов
Route::group($groupData, function () {
    //BookCategory
    $methods = ['index', 'edit', 'update', 'create', 'store', 'destroy'];
    Route::resource('categories', 'CategoryController')
        ->only($methods)
        ->names('breh.admin.lib.categories');

    Route::resource('books','BookController')
        ->only($methods)
        ->names('breh.admin.lib.book');
});


То на каждый delete action нужно будет определять форму.
Потому что роут будет ждать метод DELETE, а не GET.

Поэтому я создал маршрут delete таким образом:
Route::get('/admin/categories/{id}/delete', 'CategoryController@delete')
    ->middleware('is_admin')
    ->name('breh.admin.lib.categories.delete');


Скажите насколько это корректно?
  • Вопрос задан
  • 443 просмотра
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Зачем отдельно его задавать если вы Route::resource используете который всё это внутри себя поддерживает?
Реализуйте в рамках ресурса.

Потому что роут будет ждать метод DELETE, а не GET.

Поэтому я создал маршрут delete таким образом:

Route::get('/admin/categories/{id}/delete'
И где тут у вас метод delete?
Постфикс /delete никакой не нужен, потому что метод другой будет, GET /admin/categories/{id} и DELETE /admin/categories/{id} это разные роуты и без дополнительных разделений.

Route::delete('/admin/categories/{id}'
вот метод delete
Ответ написан
JhaoDa
@JhaoDa
LaravelRUS Team
Это некорректно настолько, что за такое руки отрубать надо. Максимум POST.

P.S. Вопрос миллион раз задан и отвечен в интернетах, предлагаю сначала приобрести навыки гугления, а уж потом ларавел.
Ответ написан
@sirenity
$methods = ['index', 'edit', 'update', 'create', 'store', 'destroy'];

Так как у вас используются методы все кроме show, можно писать except('show'), вместо only($methods)

Поэтому я создал маршрут delete таким образом:

Этот метод отдает форму удаления, которая отличается от обновления? А у удалять по обычному методу будете Route::delete('/admin/categories/{id}? тогда да возможна такая запись. Но можно было тогда оставить show и там сделать удаление.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы