web-dev-qa-db-fra.com

Comment envoyer des données en utilisant la redirection avec Laravel

J'ai développé une API pour afficher un message contextuel lors du chargement de la page.

Toutes les pages n'utilisent pas l'API contextuelle. Par exemple, si l'utilisateur accède à la page show($id), cela ne nécessite pas le déclenchement de l'API contextuelle. mais dans certains cas particuliers, il faut que la pop-up soit licenciée.

Voici mon code, ** ce code est juste pour illustrer mon propos, pas un code de travail réel **

public function store(){
    validating the input

    saving them

    $id = get the id

    return Redirect::route('clients.show, $id')
}

et dans la fonction show, je fais ceci:

public function show($id){
   $client =Client::find($id)
   return View::make('clients.profife')->with(array(
   'data' => $client
))

Ma question

Est-il possible d'envoyer des données de la fonction store à la fonction show à l'aide de Redirect :: route ? et puis dans la fonction show, je vérifie si cette fonction show, je vérifie si ces données ont été envoyées, puis je décide d'activer ou non le pop up api.

}

14
Anastasie Laurent

En magasin()

return Redirect::route('clients.show, $id')->with( ['data' => $data] );

et dans show() le lire avec 

Session::get('data');
27
delmadord

Une redirection simple utilisant des fonctions d'assistance.

Vous n'avez donc pas besoin de définir use Redirect ni use Session dans votre modèle de contrôleur.

Après avoir traité quelque chose dans votre contrôleur, insérez:

return redirect()->route( 'clients.show' )->with( [ 'id' => $id ] );

Pour récupérer la variable 'id' dans la route 'clients.show' (mentionnée ci-dessus), utilisez:

// in PHP
$id = session()->get( 'id' );

// in Blade
{{ session()->get( 'id' ) }}
6
vozaldi

Oui, vous pouvez définir le chemin dans la route comme ci-dessous:

Route::get('store/{id?}/{param1?}/{param2?}/{param3?}', 'clients@store');

Vous pouvez passer plusieurs paramètres dans une fonction et lire dans un contrôleur en passant un argument.

Vous pouvez définir dans le contrôleur:

public function store(id, param1,param2,param3){
//read the param values
}
0
Sikander