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

时间:2015-08-02 05:40:24

标签: php laravel undefined blade laravel-5.1

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

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

这是我的路线:

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

这是我的Controller Cliente:

public function index(){

    $data = Cliente::all();

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

我的刀锋:

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

我做错了什么?

此外,如果试图做这样的话 控制器客户:

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

和刀片:

{{$name}}

那是行的......只有变量和数组才起作用。

2 个答案:

答案 0 :(得分:4)

在您的控制器上试试这个:

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

From the compact documentation:“每个参数可以是字符串,其中包含变量的名称,或者<数组 < em>变量名。数组中可以包含其他变量名数组; compact()以递归方式处理它。“

答案 1 :(得分:1)

你可以这样试试

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

然后你可以像这样用刀片抓住它

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