1
votes

Variable non définie (impossible de trouver la variable dans la vue)

J'essaye de passer une variable du contrôleur à la vue, mais il affiche le message suivant:

Variable non définie.

Contrôleur

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Copa do Mundo 2018</title>

<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>

<body>

<div id="page-wrap">

<h1>Quiz Copa do Mundo 2018</h1>

<form action="grade.php" method="post" id="quiz">

    <ol>

        <li>

            <h3> ?</h3>
            @if($bandeira == '1')
                <img src="{{ asset('img/espanha.jpg') }}" alt=""/>
            @elseif($bandeira == '2') 
                <img src="{{ asset('img/argentina.jpg') }}" alt=""/>
            @endif

View

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class QuizController extends Controller
{
public function getUrl($url = null) {
    $bandeira = '1';
    $bandeira2 = '2';

    if ($url == '1') {

        return view('quiz')->with($bandeira);

    } elseif ($url == '2') {

        return view('quiz')->with($bandeira2);

    } else {
        return view('home');

    }
  }
}


0 commentaires

4 Réponses :


0
votes

écrivez votre variable comme ceci

   $bandeira['bandeira'] = 1;
   return view('quiz')->with($bandeira);


0 commentaires

0
votes

Je pense que vous devriez écrire votre méthode getUrl comme ceci return view ('home', ['bandeira' => $ url]); et non si instruction requise


0 commentaires

-1
votes

modifier votre page d'affichage

<?php 
      if(isset($bandeira) && $bandeira==1)
        {
        // your code here.... 
       } 
      else if(isset($bandeira) && $bandeira==2) 
       { 
         // your code here.... 
       }

    ?>

Je pense que cela vous est utile


0 commentaires

1
votes

Lorsque vous passez des informations de cette manière, les données doivent être un tableau avec des paires clé / valeur. Dans votre vue, vous pouvez ensuite accéder à chaque valeur en utilisant sa clé correspondante, telle que
Php echo $ key; ?> .

Correction de votre code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Copa do Mundo 2018</title>

<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>

<body>

<div id="page-wrap">

<h1>Quiz Copa do Mundo 2018</h1>

<form action="grade.php" method="post" id="quiz">

    <ol>

        <li>

            <h3> ?</h3>
            @if($bandeira == '1')
                <img src="{{ asset('img/espanha.jpg') }}" alt=""/>
            @elseif($bandeira == '2') 
                <img src="{{ asset('img/argentina.jpg') }}" alt=""/>
            @endif

À votre avis:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class QuizController extends Controller
{
public function getUrl($url = null) {

   $data_to_view['bandeira'] = url;

    if ($url != null) {

        return view('quiz')->with($data_to_view);

    } else {
        return view('home');

    }
  }
}


0 commentaires