Laravel 5.1 Eloquent添加条件


Laravel 5.1 Eloquent add conditions

Car.php

class Car extends Model {
    protected $table = 'master_cars';
}

Person.php

class Person extends Model {
    protected $table = 'master_persons';
    public function car() {
        return $this->belongsTo('App'Models'Car', 'car_id', 'id');
    }
}

Controller.php

$cars = Car::orderBy('id', 'desc')->where('name', '=', $request->name);
if (!empty($request->person)) {
    $cars->join('master_persons', 'master_persons.car_id', '=', 'master_cars.id')
     ->where('master_persons.name', '=', $request->person);
}
$cars->paginate(10);
return view('main.index')
            ->with('cars', $cars);

index.blade.php

@foreach ($cars as $car)
    {!! car->name !!}
@endforeach
{!! $cars->render() !!}

这样,当您使用Eloquent时,会发生以下错误。

"调用未定义的方法Illuminate''Database''Query''Builder::render()"

决议是不是能看到人?

$cars是集合,而不是单个Car对象。

要在对象上调用实例方法,必须在该类的实例上调用它

因此,您应该从foreach循环中调用render()方法,或者您需要说$cars->first()->render()之类的话,或者任何其他返回单个Car实例

的话