2015-05-13 36 views
10

Hej, jestem nowy w laravel i staram się przechowywać wszystkie zapisy tabeli 'studenta' do zmiennej, a następnie przekazać tę zmienną do widoku, dzięki czemu mogę je wyświetlić.Przekazywanie danych z kontrolera do widoku w Laravel

Mam kontroler - ProfileController i wewnątrz, że funkcja:

public function showstudents() 
    { 
    $students = DB::table('student')->get(); 
    return View::make("user/regprofile")->with('students',$students); 
    } 

Moim zdaniem mam ten kod

<html> 
    <head></head> 
    <body> Hi {{Auth::user()->fullname}} 
    @foreach ($students as $student) 
    {{$student->name}} 

    @endforeach 


    @stop 

    </body> 
    </html> 

Otrzymuję ten błąd: zmienna Undefined: studenci (zobacz: regprofile.blade.php)

Odpowiedz

11

możesz dać tego spróbować,

return View::make("user/regprofile", compact('students')); OR 
return View::make("user/regprofile")->with(array('students'=>$students)); 

Chociaż można ustawić wiele zmiennych coś takiego,

$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); 
+0

nie, nie działa :( – VP1234

+0

czy otrzymujesz ten sam błąd? –

+0

tak, niezdefiniowana zmienna student – VP1234

0

Spróbuj z tym kodem:

return View::make('user/regprofile', array 
    (
     'students' => $students 
    ) 
); 

Lub jeśli chcesz przekazać więcej zmiennych do widzenia:

return View::make('user/regprofile', array 
    (
     'students' => $students, 
     'variable_1' => $variable_1, 
     'variable_2' => $variable_2 
    ) 
); 
6

Do przekazywania pojedynczej zmiennej do wyświetlenia.

Wewnątrz kontrolera utworzyć metody jak:

function sleep() 
{ 
     return view('welcome')->with('title','My App'); 
} 

W Twojej trasie

Route::get('/sleep', '[email protected]'); 

w widoku Welcome.blade.php. Można echo zmienną jak {{ $title }}

dla tablicy (wiele wartości) zmiana, metoda sleep do:

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

można uzyskać dostęp Ci zmienna jak {{ $author }}.

-1

Myślę, że przekazanie danych z kontrolera do widoku jest złe. Ponieważ nie nadaje się do ponownego wykorzystania i sprawia, że ​​kontroler jest grubszy. Widok powinien być podzielony na dwie części: szablon i pomocnik (który może uzyskać dane z dowolnego miejsca). Aby uzyskać więcej informacji, można wyszukać kompilator widoku w języku laravel.

Powiązane problemy