Bonjour les gars, je suis nouveau dans laravel et j'ai essayé de stocker tous les enregistrements de la table 'student' dans une variable, puis de passer cette variable à une vue afin que je puisse les afficher.
J'ai un contrôleur - ProfileController et à l'intérieur de cela une fonction:
public function showstudents()
{
$students = DB::table('student')->get();
return View::make("user/regprofile")->with('students',$students);
}
À mon avis, j'ai ce code
<html>
<head></head>
<body> Hi {{Auth::user()->fullname}}
@foreach ($students as $student)
{{$student->name}}
@endforeach
@stop
</body>
</html>
Je reçois cette erreur: Variable non définie: étudiants (Affichage: regprofile.blade.php)
Pouvez-vous essayer ceci,
return View::make("user/regprofile", compact('students')); OR
return View::make("user/regprofile")->with(array('students'=>$students));
Alors que, vous pouvez définir plusieurs variables quelque chose comme ça,
$instructors="";
$instituitions="";
$compactData=array('students', 'instructors', 'instituitions');
$data=array('students'=>$students, 'instructors'=>$instructors, 'instituitions'=>$instituitions);
return View::make("user/regprofile", compact($compactData));
return View::make("user/regprofile")->with($data);
Pour passer une seule variable à afficher.
Dans votre contrôleur, créez une méthode telle que:
function sleep()
{
return view('welcome')->with('title','My App');
}
Dans votre itinéraire
Route::get('/sleep', 'TestController@sleep');
Dans votre vue Welcome.blade.php
. Vous pouvez faire écho à votre variable comme {{ $title }}
Pour un tableau (valeurs multiples), modifiez la méthode de veille pour:
function sleep()
{
$data = array(
'title'=>'My App',
'Description'=>'This is New Application',
'author'=>'foo'
);
return view('welcome')->with($data);
}
Vous pouvez accéder à votre variable comme {{ $author }}
.
Dans Laravel 5.6:
$variable = model_name::find($id);
return view('view')->with ('variable',$variable);
Vous pouvez aussi essayer ceci:
public function showstudents(){
$students = DB::table('student')->get();
return view("user/regprofile", ['students'=>$students]);
}
et utilisez cette variable dans votre fichier view.blade pour obtenir le nom des étudiants et d'autres colonnes:
{{$students['name']}}
Essayez avec ce code:
return View::make('user/regprofile', array
(
'students' => $students
)
);
Ou si vous voulez passer plus de variables dans la vue:
return View::make('user/regprofile', array
(
'students' => $students,
'variable_1' => $variable_1,
'variable_2' => $variable_2
)
);