Я получаю сообщение об ошибкеLaravel Ошибка: Попытка получить свойство необъектных
Попытка получить свойство не-объекта (Вид: C: \ XAMPP \ HTDOCS \ Laravel \ проектируемый \ Resources \ вид \ mycases.blade.php)
Я определил отношения между двумя моделями Ccase и Hiring.
public function hirings()
{
return $this -> hasMany('App\Hiring', 'case_ID')->orderBy('id','desc');
}
и постраничный результаты, используя метод ниже
public function getHiringsPaginateAttribute($perPage)
{
return $this->hirings()->paginate($perPage);
}
Другой модели «найм» имеет метод для определения отношения с Ccase следующим образом:
public function ccase()
{
return $this->belongsTo('App\Ccase', 'id');
}
В моем контроллере, У меня есть следующий код:
if(isset($search_term))
{
$search_term = preg_replace('/\s+/', ' ', $search_term);
$search_term = trim($search_term);
if (strlen($search_term) > 0 && strlen(trim($search_term)) == 0)
$search_term = NULL;
$search_terms = explode(' ',$search_term);
$fields = array('id', 'title', 'case');
$hirings = $hirings->whereHas('ccase', function($q) use ($search_terms, $fields){
foreach ($search_terms as $term)
{
foreach ($fields as $field)
{
$q->orWhere($field, 'LIKE', '%'. $term .'%');
}
}
});
}
$hirings = $hirings->getHiringsPaginateAttribute($results_per_page);
В mycases.blade.php, мой код
{{$hiring->ccase->id}}
Эта линия метания сказанное ошибка при выходе {{$hiring->ccase}}
является:
{"id":1,"case":"HI this is a sample case i am putting just for test.","created_at":"2015-02-22 11:54:09","updated_at":"2015-02-22 11:54:09"}
Что может быть не так с кодом?
Возможно, вы находитесь в цикле, и хотя бы один из hirings не имеет назначенного ccase. – lukasgeiter
Моя проблема была с 'public function ccase() { return $ this-> принадлежит ('App \ Ccase', 'id'); } 'и я должен быть как ' public function ccase() {return $ this-> attribTo ('App \ Ccase', 'case_ID', 'id'); } ' –