#php #laravel #web #eloquent #routes
Вопрос:
Было несколько итераций этого кода, но я покажу только то, что пока работало лучше всего (без ошибок).
Функция уничтожения:
public function destroy($locale, $id)
{
Component::where('id', $id)->delete();
$locale = App::getLocale();
return route('components.index', compact('locale'));
}
Индексная функция (ссылка выше):
public function index($locale)
{
parent::lang($locale);
$components = Component::paginate(10);
return view('production/index-component', compact('components'));
}
Соответствующий маршрут:
Route::group(['prefix' => '{locale}'], function() {
Route::resource('/components', ComponentController::class);
});
Функция уничтожения работает иначе, записи удаляются (при переходе на правильный URL). В идеале это должно просто перенаправить пользователя обратно в {locale}/components .
Заранее спасибо!
Комментарии:
1. Добро пожаловать в SO … вы возвращаете URL-адрес в виде строки, а не ответ перенаправления… проверьте документацию для возврата перенаправления laravel.com/docs/8.x/responses#redirecting-named-routes
2. Вау, спасибо! Мне неловко говорить, как долго это меня мучает.
Ответ №1:
Заслуга lagbox,
public function destroy($locale, $id)
{
Component::where('id', $id)->delete();
$locale = App::getLocale();
return redirect()->route('components.index', ['locale' => $locale]);
}
Это сработало отлично.