как перенаправить на конкретную страницу

#laravel #vue.js

Вопрос:

При заполнении формы я хочу, чтобы она перенаправила меня на другую страницу, но я не могу попасть на эту страницу.

маршрут

 Route::get('cotizacion-enviada', function () {
     return view('quotationshippingvalid');
})->name('cotizacion-enviada');
 

контроллер

 public function store(StoreQuotationShipping $request){

    $data = $request->all();
    
    $id = QuotationShipping::create([
        'user_id' => $data['id'], //usuario alvaro por defecto
        'nombre' => $data['nombre'],
        'rut' => $data['rut'],
        'telefono' => $data['telefono'],
        'ciudad' => $data['ciudad'],
        // 'direccion' => $direccion,
        'sucursal' => $data['sucursal']
    ])->id;
     
    return redirect()->route('cotizacion-enviada', [$id]);
    
}
 

Информация на странице появляется, но она перенаправляется на страницу, она остается на той же странице.

введите описание изображения здесь

Ответ №1:

Вместо того , чтобы использовать return redirect()->route('cotizacion-enviada', [$id]); , вы можете сделать
response()->json(["redirect" => route('cotizacion-enviada', [$id])]);

Затем в вашем приложении Vue проверьте, есть ли в вашем ответе ключ, названный redirect с помощью obj.hasOwnProperty("redirect") . И в теле условия вы также можете перенаправить на маршрут, который вы отправляете из метода контроллера.

Ответ №2:

Если вам нужен идентификатор в «cotizacion-enviada» , попробуйте это:

 Route::get('cotizacion-enviada/{id}', function ($id) {
     return view('quotationshippingvalid', ['id' => $id]);
})->name('cotizacion-enviada');
 

Если ваш маршрут отображает только файл представления, вы можете отображать представление непосредственно внутри контроллера.