2015-08-02 13 views
5

Próbuję wysłać zmienną ostrze widok, ale rzucać ten błąd:nie mogę wysłać zmienną ostrze laravel 5,1

zmienna Undefined: dane (Zobacz: D: \ wamp \ www \ tienda \ Resources \ views \ cliente.blade.php)

to moja trasa:

Route::resource('cliente','ClienteController'); 

to jest mój kontroler Cliente:

public function index(){ 

    $data = Cliente::all(); 

    return view('cliente',compact($data)); 
} 

A mój Blade:

@foreach ($data as $user) 
     <tr> 
      <td>{{$user->nombre}}</td> 
     </tr> 
    @endforeach 

Co robię źle?

Dodatkowo, jeśli staram się robić na przykład ten Controller Cliente:

public function index(){ 
    return view('cliente', ['name' => 'James']); 
} 

A Blade

{{$name}} 

To tak praca ... Tylko zmienne i tablice, nie robi praca.

Odpowiedz

4

Spróbuj tego kontrolera:

public function index(){ 
    $data = Cliente::all(); 
    return view('cliente',compact('data')); 
} 

From the compact documentation: „Każdy parametr może być albo ciąg zawierający nazwę zmiennej, lub tablicę z nazw zmiennych. tablica może zawierać inne tablice nazw zmiennych wewnątrz niej, compact() obsługuje ją rekursywnie. "

+1

Ohh! kompaktowa metoda otrzymuje ciąg, a nie zmienną ... Nie widzę tego ... Wielkie dzięki. –

1

możesz wypróbować w ten sposób

public function index(){ 
$data['data'] = Cliente::all(); 
return view('cliente', $data); 
} 

Następnie można go złapać w ostrzu jak się ten

@foreach ($data as $user) 
    <tr> 
     <td>{{$user->nombre}}</td> 
    </tr> 
@endforeach 
Powiązane problemy