Laravel中未定义变量的问题

时间:2018-03-07 14:51:37

标签: laravel

在Laravel中加载页面时,我一直收到未定义的变量:汽车。

我有以下代码:

web.php

Route::get('/cars', function () {
    $cars= Car::select('brand')->get();    
    return view('test.cars')->with(compact($cars));
});

如果我在返回视图之前放置dd(cars);,则输出该集合。

在cars.blade.php中,我有以下代码:

<select name="car">
@foreach($cars as $car)
    <option>{{ $car->brand}}</option>
@endforeach
</select>

我得到Undefined变量:cars,我还从刀片模板中删除了下拉列表,我尝试了{{ dd($cars) }}但是得到了同样的错误。

2 个答案:

答案 0 :(得分:0)

请尝试以下代码:

Route::get('/cars', function () {
    $cars= App\Car::pluck('brand');    
    return view('test.cars',['cars'=>$cars]);
});

OR

Route::get('/cars', function () {
    $cars= App\student::pluck('first_name');    
    return view('test.cars', compact('cars'));
});

注意:Car模型出现在App文件夹中。

答案 1 :(得分:0)

将变量传递给视图的正确语法是:

view('test.cars', ['cars' => $cars])

view('test.cars')->with('cars', $cars)

“with”函数需要首先传递名称,然后传递变量。