2017-08-04 98 views
0

我與Laravel有多態關係。 我的多態關係是Message-> messageable成爲Group或Chat。Laravel多態關係0結果

從消息 - >可消息將會給我正確的結果(例如消息所關聯的組或聊天)。

從示例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

任何想法?

回答

1

您的關係不正確。您需要引用完整的類名稱空間,而不僅僅是類名稱本身。例如。

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

試過有/沒有完整的命名空間,沒有區別。 – Prodigle

+0

您的數據庫模式是什麼樣的,專門用於形態化字段? – fubar

0

忘記在我的數據庫messageable_type中包含名稱空間。

從組更改爲App \ Group。

+0

所以這是關係被錯誤定義;) – fubar