如何使用关系返回El​​oquent模型?

时间:2014-01-29 01:36:22

标签: php laravel eloquent

我有一个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()

有没有办法找回具有关系的规则的实际Eloquent模型表示?

2 个答案:

答案 0 :(得分:0)

检查 $ rules (对象或数组)的类型。

答案 1 :(得分:0)

在集合上,您应该使用内置帮助程序,如下所述:

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

然后您可以使用:

$rules = $queue->rules->each(function($rule)
{
    return $rule->displayInfo();
});