我无法向Laravel 5.1中的Blade发送变量

Ale*_*nez 5 php undefined laravel blade laravel-5.1

我正在尝试将变量发送到刀片视图,但抛出此错误:

未定义的变量:data(查看:D:\ wamp\www\tienda\resources\views\cliente.blade.php)

这是我的路线:

Route::resource('cliente','ClienteController');
Run Code Online (Sandbox Code Playgroud)

这是我的Controller Cliente:

public function index(){

    $data = Cliente::all();

    return view('cliente',compact($data));
}
Run Code Online (Sandbox Code Playgroud)

而我的刀刃:

 @foreach ($data as $user)
        <tr>
            <td>{{$user->nombre}}</td>
        </tr>
    @endforeach
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

此外,如果尝试做这个控制器Cliente:

    public function index(){
    return view('cliente', ['name' => 'James']);
}
Run Code Online (Sandbox Code Playgroud)

和刀片:

{{$name}}
Run Code Online (Sandbox Code Playgroud)

那是的工作......只有变量和数组,不起作用.

Jua*_*ats 4

在您的控制器上尝试一下:

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

来自紧凑文档:“每个参数可以是包含变量名称的字符串,也可以是变量名称数组该数组内部可以包含其他变量名称数组;compact() 递归地处理它。”