9
votes

Passage de la variable du contrôleur à la vue - Laravel

J'essaie de passer une variable d'une vue à un contrôleur à une autre vue. Je ne reçois aucune erreur, mais quand il arrive à la dernière vue, cela ne montre pas la variable comme celle-ci est supposée. Dans la première vue, je reçois juste un nom. xxx pré>

voici mon homécontroller.php. p> xxx pré>

routes.php p> xxx pré> p > VIEW2.BLADE.PHP P>

{{ $name = Input::get('name') }}
<p> Hello, {{ $name }} </p>


0 commentaires

5 Réponses :


2
votes

Vous devez nommer la variable:

public function view2($name)
{
    return View::make('view2')->with('name', $name);
}


1 commentaires

J'ai essayé ça, et ça n'a toujours pas fonctionné. Avez-vous d'autres idées sur ce qui pourrait être faux avec ce que je fais? J'ai essayé de comprendre cela pendant un moment maintenant et je ne peux tout simplement pas le faire travailler.



0
votes

TRY-FORM sera si vous utilisez la méthode postale Pourquoi définir la variable dans la route Il ira directement sur votre fonction avec les données postales.

<p> Hello, {{ $name }} </p>


2 commentaires

Je l'ai fait et cela m'a donné l'erreur - "Index non défini: nom". Comment devrais-je résoudre ce problème?


Cochez Imprimer_R ($ données); Vous avez un nom existant dans vos données de poste? Vérifiez également le formulaire mis à jour



-1
votes

Voici quelles sont les autres réponses manquantes, directement de Documents Laravel :

Étant donné que la méthode avec clignote des données à la session, vous pouvez récupérer les données à l'aide de la session typique Session :: Obtenir la méthode

donc au lieu de {{$ nom}}}} écrire {{session :: get ('nom')}} . .


0 commentaires

14
votes

Vous devez d'abord changer votre fonction code> postview code> dans: xxx pré>

et votre itinéraire: p> xxx pré>

: p> xxx pré>

MAINTENANT, vous devez modifier votre fonction View2 code> dans: p>

<p> Hello, {{ $name }} </p>


8 commentaires

Cela a du sens maintenant. Mais j'ai toujours un problème. Maintenant, quand il devient voir2, cela dit simplement "Bonjour, {nom}" au lieu de montrer le nom.


@ PORCUPINE92 Et quelle url est-ce que vous mettez dans le navigateur pour cela? Vous devez utiliser par exemple http: // localhost / YourProject / View2 / Porcupine92


Lorsque je saisis un nom un nom dans le champ de texte pour le formulaire, puis cliquez sur le bouton Soumettre, il va à la vue2 et explique simplement "Bonjour, {nom}". L'URL vient de dire http: // localhost / myProject / View2 /% 7BName% 7D . Si je tapez http: // localhost / YourProject / View2 / PORCUPINE92 Pour l'URL, cela dit simplement "Bonjour", sans nom.


@ porcupine92 J'ai édité ma réponse, les données sont maintenant injectées en tant que paramètre de route


Je reçois une "NotfoundhttpException" maintenant. Cela pourrait-il être à cause d'un problème avec mes itinéraires?


@ PORCUPINE92 et quelle URL utilisez-vous maintenant lorsque vous obtenez cette exception? Vous devriez être précis et assurez-vous que le code est exactement le même que celui que j'ai montré.


Mon code ressemble exactement à la vôtre. Lorsque j'utilise l'URL http: // localhost / myProject / vue2 / porcupine92 , il dit "bonjour, porcupine92". Mais pourquoi ne fera-t-il pas que lorsque j'utilise le bouton d'envoi? Merci beaucoup pour votre aide jusqu'à présent!


Merci beaucoup! Ça a marché. Espérons qu'un jour, je serai aussi bon que vous avec PHP.



2
votes
class HomeController extends Controller {
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {

    }

    public function index()
    {
        $data = array (
            'title'=>'My App yo',
            'Description'=>'This is New Application',
            'author'=>'foo'
        );
        return view('home')->with($data);;
    }
}

2 commentaires

Voir la page


Bonne réponse. C'est l'une des solutions les plus propres.