2017-08-04 9 views
0

私はララベルと多相関係にあります。 私の多態性の関係は、Message-> messageableでグループまたはチャットになります。ララベル多型関係0の結果

メッセージ - >メッセージ可能にすると、適切な結果が得られます(メッセージが関連付けられているグループやチャットなど)。

例から行くGroup :: first() - > with( 'messages') - > get()は空のメッセージ配列を返します。メッセージの

私のDBテーブルは意図

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

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

として

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

^作品これらは空の戻りを次のように messageable_id messageable_type

マイモデルのメソッドがあります。使用

データ例: 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