3
votes

Comment ajouter une chaîne de requête à la vue Laravel

J'utilise Laravel 5.7 et je souhaite renvoyer une vue, avec des chaînes de requête. Par exemple. Voici ce que je fais en ce moment.

return view('cart', compact('somevar'))

Cela amène l'utilisateur à mondomaine.com/cart

Je voudrais ajouter des chaînes de requête, par exemple donc l'utilisateur accède à mondomaine.com/cart?id=123

Comment puis-je faire cela?


3 commentaires

Créez simplement l'url de votre redirection vers cet écran et utilisez $ request-> id pour obtenir la valeur de la chaîne de requête.


Double possible de Passage du paramètre de requête à View - Laravel


Ce n'est pas un doublon qu'il sait déjà passer aux paramètres. Il demande autre chose.


5 Réponses :


0
votes

Vous pouvez réaliser ceci:

return view('cart', compact('id'));

Vos données doivent être un tableau avec une paire clé-valeur.

Vous pouvez également utiliser avec code > méthode:

return view('cart')->with('id', $id);

Vous pouvez également utiliser compact :

return view('cart', ['id' => $id]);

Pour en savoir plus, veuillez consulter Passer des données à des vues

p>


0 commentaires

0
votes

Vous pouvez transmettre des données pour afficher comme ceci:

  $data = array('count' => '7', 'id' => '4');

Et $ data est un tableau qui contient plusieurs valeurs comme ceci:

return view('admin-panel.leave.index')->with($data);

p>


0 commentaires

0
votes

Ce que vous demandez n'est pas réalisable avec cette approche, car le problème principal est que / var / www / vendor / laravel / framework / src / Illuminate / View n'a pas ce que vous recherchez . Le seul moyen de le faire est de return redirect () -> route ('cart', ['id' => 123]);

Si cela est vraiment nécessaire, je pense que vous devez rediriger avant d'appeler le / cart Quelque chose comme ça à vos rootes/web:

public function workaround(){
  // your code.....
   return redirect()->route('cart', ['id' => 1]);   
}
public function showtheview(){
  //your code....
  return view('cart', compact('somevar'))
}

Puis dans votre CartsController :

Route::get('/addcart', 'CartsController@workaround');
Route::get('/cart', 'CartsController@showtheview')->name('cart');

J'espère que vous comprenez la logique.


0 commentaires

-2
votes

Vous pouvez essayer ceci:

// app/Http/routes.php
Route::get('/cart/{id}', function ($id) {
    return view('cart')->with('id', $id);
});

// resources/views/example.blade.php
The last part of the route URI is <b>{{ $id }}</b>

Et en retour:

return view('cart/'.$id, compact('somevar'))

Vous pouvez également essayer comme ceci:

XXX


0 commentaires

0
votes

Je ne pense pas que ce soit possible. Toutes les réponses ici oublient que "somevar" doit également être retourné. Non seulement certaines données compactes doivent être renvoyées, mais l'URL doit également avoir des variables.

Autrement dit, vous voulez des données de lame internes par compactage, mais l'URL doit avoir une apparence différente car elle doit avoir "& somevar2 = xyz & somevar3 = abc" ajouté.

Veuillez me corriger si je me trompe, mais pas possible.


0 commentaires