J'essaye de passer une variable du contrôleur à la vue, mais il affiche le message suivant:
Variable non définie.
<!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
<?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');
}
}
}
4 Réponses :
écrivez votre variable comme ceci
$bandeira['bandeira'] = 1;
return view('quiz')->with($bandeira);
Je pense que vous devriez écrire votre méthode getUrl comme ceci
return view ('home', ['bandeira' => $ url]); et non si instruction requise
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
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');
}
}
}