在Laravel4中创建具有多态关系的活动源

时间:2014-02-11 03:41:10

标签: laravel-4 eloquent polymorphic-associations news-feed

我想在laravel4中创建活动源,所以我用多态关系做了这个,其中Feed模型有item()函数,这里是:

class Feed extends \Eloquent
{ 
    protected $table = 'feed'; 

    public function item() 
    { 
        return $this->morphTo(); 
    }
}

然后我为儿童模特添加了其他关系:

class UserStatus extends \Eloquent
{ 
    protected $table = 'user_status'; 

    public function feed() 
    { 
        return $this->morphMany('Feed', 'item'); 
    }
}

class Photo extends \Eloquent
{ 
    protected $table = 'photo'; 

    public function feed() 
    { 
        return $this->morphMany('Feed', 'item'); 
    }
}

但是当我查询用户的活动时,它显示: 类名必须是有效对象或字符串

这是我在用户模型中的查询:

class User extends \Eloquent
{ 
    public function activities()
    { 
        return $this->hasMany('Feed', 'user_id')->with('item')->get();
    }
}

如何为用户获取活动列表(父多态模型Feed)?

1 个答案:

答案 0 :(得分:0)

来自文档...

  

多态关系允许模型属于多个其他模型   模型,单一关联。例如,您可能有一张照片   属于员工模型或订单模型的模型。

这允许子对象(例如照片或评论)属于多种类型的父对象。我认为你正试图做相反的事情 - 一个有多种孩子的单亲。