2016-11-14 4 views
0

こんにちは、私はピボットを使用して多くの多くの関係の中間テーブルの属性にアクセスしようとしていますが、それはnullsを返します。アクセスlaraval 5.2多対多ピボット。しかしそれはnullを返します

class User extends Modal 
{ 


    public function packages() 
    { 
     return $this->belongsToMany('App\Package'); 
    } 
} 


Class Package extend Model 

    { 

     public function users() 
     { 
     return $this->belongsToMany('App\User'); 
     } 


    } 

$package->pivot->created_at

が、それはnullを返します。

私はユーザーに関連付けられたパッケージを持っていますが。

+0

意味のある回答のための情報が不十分です – Andrew

答えて

1

はこの1つを試してみてください:デフォルトでは

class User extends Modal 
{ 


    public function packages() 
    { 
     return $this->belongsToMany('App\Package')->withTimestamps(); 
    } 
} 


Class Package extend Model 

    { 

     public function users() 
     { 
     return $this->belongsToMany('App\User')->withTimestamps(); 
     } 


    } 
1

、唯一のモデルのキーは、ピボットオブジェクト上に存在することになります。あなたのピボットテーブルは、余分な属性が含まれている場合の関係を定義するとき、あなたはそれらを指定する必要があります。

public function packages() 
{ 
    return $this->belongsToMany('App\Package')->withPivot('created_at'); 
} 

public function users() 
{ 
    return $this->belongsToMany('App\User')->withPivot('created_at'); 
} 

Docs

1

があなたのテーブルにタイムスタンプを持っていることを確認してください。

Schema::table('user_package', function (Blueprint $table) { 
     $table->timestamps(); 
    }); 

あなたのタイムスタンプがデータベースに保存されません。この行を追加していけない場合、あなたはあなたの移行に

class User extends Modal 
{ 


    public function packages() 
    { 
    return $this->belongsToMany('App\Package')->withTimestamps(); 
    } 
} 


Class Package extend Model 
    { 

    public function users() 
    { 
    return $this->belongsToMany('App\User')->withTimestamps(); 
    } 


} 

を追加することによってこれを行うことができます。

return $this->belongsToMany('App\User')->withTimestamps(); 

これが役に立ちます。

+0

私のテーブルにはタイムスタンプがありません。 –

関連する問題