2015-11-20 60 views
0

Car.phpLaravel 5.1锋添加条件

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时,会发生以下错误。

“调用未定义的方法照亮\数据库\查询\生成器::渲染()”

分辨率是与否的人可以看到?

回答

0

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

调用一个实例的方法的对象,它必须在该类的实例称为

所以您应该从foreach循环中调用render()方法,或者你需要这样说$cars->first()->render() ,或其他任何返回单一的Car实例