Laravel多态关系0结果

时间:2017-08-04 00:39:18

标签: php laravel polymorphic-associations

我与Laravel有多态关系。 我的多态关系是Message-> messageable成为Group或Chat。

来自Message-> messageable会给我正确的结果(例如与消息相关联的群组或聊天)。

来自示例Group :: first() - > with('messages') - > get()将返回一个空消息数组。

我的消息的数据库表是 messageable_id messageable_type

我的模型方法如下

class Message extends Model
{
public function messageable(){
    return $this->morphTo();
}

^按预期工作

class Group extends Model
{
function messages(){
    return $this->morphMany('Message','messageable');
}

class Chat extends Model
{
public function messages(){
    return $this->morphMany('Message','messageable');

这些返回为空。

使用的示例数据: 1

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您的人际关系不正确。您需要引用完整的类命名空间,而不仅仅是类名本身。 E.g。

class Group extends Model
{
    public function messages()
    {
        return $this->morphMany(\App\Models\Message::class', 'messageable');
    }
}

答案 1 :(得分:0)

忘记在我的数据库messageable_type中包含名称空间。

从群组更改为App \ Group。