Soy nuevo en Laravel y, en realidad, nunca lo usé antes de tener Web.php en qué ruta están presentes

Obtener ruta

Route::get('/', function () {
    
    return view('showForm',['na'=>'']);
})->name("start");

Ruta posterior

Route::post('/upload', function (Request $request) {
    
    if($request->file("thing")=="")
    {
        // return back()->withInput();
        return redirect()->route('start');
    }
    else
    {
        $name=$request->file("thing")->getClientOriginalName();
        Storage::disk("google")->putFileAs("",$request->file("thing"),$name);
        $url=Storage::disk('google')->url($name);
        $details=Storage::disk("google")->getMetadata($name);
        $path=$details['path'];
        DB::insert('insert into books (Title, Url, FileId) values (?,?,?)', [$name,$url,$path]);
        return redirect()->route('start');
    }
})->name("upload");

Quiero eso en la ruta posterior Cuando la condición se vuelve verdadera, entonces junto con la redirección para obtener la ruta, envía una variable $msg="insert data"; y cuando el más condición se convierte en verdadero, envía una variable $msg="success upload"; que la ruta de obtenga recibirá y la usará en

return view('showForm',['na'=>$msg]);

Para devolver el mensaje al show form.blade.php

¿Cómo puedo hacer esto? He leído que podemos enviar los parámetros por

return redirect()->route('start',['varaiable'=>'value'])

Pero dónde especificar esa variable en obtener la ruta para que pueda usarla dentro para el mensaje.

-1
SA Ira 8 jun. 2021 a las 23:03

2 respuestas

La mejor respuesta

Veo. Parece que desea flashear el mensaje insert data después de redirigir a otra ruta. En ese caso, puede usar el método with.

return redirect()->route('start')->with('message', 'Insert Data!');

Ahora este mensaje se mantendrá en la sesión. En la plantilla de la hoja de la ruta de inicio, puede hacer algo de la siguiente manera:

@if (session('message'))
    <h1>{{ session('message') }}</h1>
@endif

El mensaje debe aparecer. Una vez que refresque la página, se irá. Lea los documentos oficiales para sesión http si desea obtener más información.

1
fhsinchy 8 jun. 2021 a las 20:19

Prueba esto:

<?php

namespace Emedico\Http\Controllers;

use Session;
use Redirect;

public function upload(Request $request)
{
    return Redirect::route('start', [variable => val]; 
}
1
Jorge Morgado 8 jun. 2021 a las 20:14