2015-11-20 5 views
0

Car.phpLaravel 5,1 Eloquent добавить условия

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 возникает следующая ошибка.

"Призыв к неопределенным метод Осветите \ Database \ Query \ Builder :: Render()"

Разрешение или не люди могут увидеть?

ответ

0

$cars is s коллекция, а не отдельное лицо Car объект.

Чтобы вызвать метод экземпляра на объекте, он должен быть вызван экземпляр этого класса

Таким образом, вы должны либо вызвать метод render() внутри этого foreach цикла, или вам нужно что-то вроде $cars->first()->render() , или что-либо еще, что возвращает s один Car экземпляр