2015-11-20 58 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實例