2014-01-29 4 views
0

У меня есть класс queue, который имеет несколько rules. Я настроил свои классы так:Как вернуть червячные модели, используя отношения?

class Queue extends Eloquent { 

    function rules() 
    { 
     return $this->hasMany('Rule'); 
    } 
} 

class Rule extends Eloquent { 

    function queue() 
    { 
     return $this->belongsTo('Queue'); 
    } 

    function displayInfo() 
    { 
     echo "Title: ".$this->title; 
    } 

} 

Я хочу, чтобы все правила, относящиеся к queue и отображать их информацию, но когда я пытаюсь это:

$rules = $queue->rules; 
foreach ($rules as $rule) { 
    $rule->displayInfo(); 
} 

я получаю следующее исключение:

Call to undefined method Illuminate\Database\Query\Builder::displayInfo()

есть ли способ, чтобы получить обратно фактически красноречивы модельные представления правила с отношениями?

+0

Вы можете разместить код, который населен ваш '$ очереди 'переменная? –

+0

$ queue = Queue :: find ($ id); – vikingsfan19

+0

Что вы получаете за 'echo gettype ($ rule);'? –

ответ

0

Оформить заказ $ правила (объект или массив).

+0

Это объект. Класс Illuminate \ Database \ Eloquent \ Collection. – vikingsfan19

0

В коллекции вы должны использовать встроенный в помощниках, как описано здесь:

http://laravel.com/docs/eloquent#collections

Вы можете использовать:

$rules = $queue->rules->each(function($rule) 
{ 
    return $rule->displayInfo(); 
}); 
Смежные вопросы