Передача данных от контроллера к виду в Laravel
Эй, ребята, я новичок в laravel, и я пытаюсь сохранить все записи таблицы "студент" в переменную, а затем передать эту переменную в представление, чтобы я мог их отобразить.
у меня есть контроллер-ProfileController и внутри него функция:
public function showstudents()
{
$students = DB::table('student')->get();
return View::make("user/regprofile")->with('students',$students);
}
на мой взгляд у меня есть этот код
<html>
<head></head>
<body> Hi {{Auth::user()->fullname}}
@foreach ($students as $student)
{{$student->name}}
@endforeach
@stop
</body>
</html>
Я получаю эту ошибку: неопределенная переменная: студенты (View:regprofile.лезвие.в PHP)
5 ответов
можете ли вы попробовать,
return View::make("user/regprofile", compact('students')); OR
return View::make("user/regprofile")->with(array('students'=>$students));
в то время как вы можете установить несколько переменных что-то вроде этого,
$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);
для передачи одной переменной для просмотра.
внутри вашего контроллера создайте такой метод, как:
function sleep()
{
return view('welcome')->with('title','My App');
}
на маршруте
Route::get('/sleep', 'TestController@sleep');
На Ваш Взгляд Welcome.blade.php
. Вы можете повторить свою переменную, как {{ $title }}
для изменения массива (несколько значений), метод сна :
function sleep()
{
$data = array(
'title'=>'My App',
'Description'=>'This is New Application',
'author'=>'foo'
);
return view('welcome')->with($data);
}
вы можете получить доступ к переменной, как {{ $author }}
.
попробуйте с этим кодом:
return View::make('user/regprofile', array
(
'students' => $students
)
);
или если вы хотите передать несколько переменных в вид:
return View::make('user/regprofile', array
(
'students' => $students,
'variable_1' => $variable_1,
'variable_2' => $variable_2
)
);
Я думаю, что передавать данные с контроллера на вид плохо. Потому что он не многоразовый и не делает контроллер толще. Вид должен быть разделен на 2 части: шаблон и помощник(который может получать данные откуда угодно). Вы можете искать просмотр композитора в laravel чтобы иметь больше информации.