2016-04-01 34 views
0

我開始使用Laravel Model關係。但現在我不知道如何使用下面的關係功能如何在Laravel中使用一對多關係?

class Notification extends Model{ 

    public function getNotification() { 

     return self::select('*')->join('users','users.id','=','Notification.n_user_id')->get(); 
    } 
    } 
+0

在什麼'Class'是你'的GetNotification()'下? – vsogrimen

+0

我用它在模型 –

+0

我的意思是什麼'模型類「?它在'User'模型中嗎?任何我在下面創建答案的方式試着看看它。我猜想'getNotification()'方法在'User'類中。 – vsogrimen

回答

1

試試這個:

class User extends Model 
{ 
    /** 
    * Get the Notifications for the User. 
    */ 
    public function notifications() 
    { 
     return $this->hasMany('App\Notification'); 
    } 
} 

但我在你的代碼中看到該用戶ID的外鍵字段被命名爲n_user_id你應該把它改成user_id他們

如何鏈接使用:

$notifications = App\Post::find(1)->notifications; 

foreach ($notifications as $notification) { 
    // 
} 

這裏是Laravel一個有用的Link 5.2文檔

獎勵:

您也可以得到通知的用戶:

class Notification extends Model 
{ 
    /** 
    * Get the User that owns the Notification. 
    */ 
    public function user() 
    { 
     return $this->belongsTo('App\User'); 
    } 
} 
0

我已經使用了以下方法,並希望它會有所幫助。

public function getNotification() { 
    $data = DB::table('users') 
      ->join('Notification', 'users.id', '=', 'Notification.n_user_id') 
      ->select('users.*', 'Notification.*') 
      ->where('users.id', '=', 5) 
      ->get(); 
    return $data; 
} 
+0

NOO, 我想從那些轉變爲雄辯 –