2015-02-02 6 views
0

Я использую larvel 4.2 и получать сообщение об ошибке: Попытка получить свойство необъектныхLaravel Ошибка: Попытка получить свойство необъектных

Модель: User.php (Thats линии ошибки)

foreach(self::with('project')->where('user_id', '=', $user->id)->get() as $row) 
    { 
    } 

Модель: User.php (у меня также есть это)

namespace Project; 

class User extends \Eloquent { 

protected $table = 'projects_users'; 

/********************************************************** 
* Methods to use with loaded User 
**********************************************************/ 

/** 
* @return User 
*/ 
public function user() 
{ 
    return $this->belongsTo('User', 'user_id')->orderBy('firstname', 'ASC'); 
} 

/** 
* @return Project 
*/ 
public function project() 
{ 
    return $this->belongsTo('Project', 'project_id')->orderBy('name', 'ASC'); 
} 

Не знаю, почему я получаю эту ошибку? Есть идеи?

+0

Похоже, это из-за '$ user-> id'. Откуда берется «$ user»? – lukasgeiter

+0

public static function active_projects ($ all = false, $ user = null) \t { – user3150060

+0

И что вы передаете как '$ user'? – lukasgeiter

ответ

0

http://php.net/manual/en/control-structures.foreach.php

Еогеасп конструкция обеспечивает простой способ для перебора массивов. foreach работает только с массивами и объектами и выдает ошибку при попытке использовать ее для переменной с другим типом данных или неинициализированной переменной.

Вы пытаетесь перебрать ошибку. Ваш запрос возвращает логическое значение.

Повторите сначала запрос, чтобы узнать, что он возвращает.

Из ваших моделей это, кажется, ничего плохого.

+0

это не цикл foreach, даже если я это сделаю: – user3150060

+0

Что возвращает ваш запрос? Что собой, это должна быть модель. – kappaallday

+0

var_dump (self :: with ('project') -> где ('user_id', '=', $ user-> id) -> get()); Я получаю такую ​​же ошибку – user3150060