如何在Laravel中使用一对多的关系?

时间:2016-04-01 01:45:11

标签: laravel-5 eloquent

我开始使用Laravel Model关系。但现在我不知道如何使用这种关系如下面的功能

 class Notification extends Model{

   public function getNotification() {

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

2 个答案:

答案 0 :(得分: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 5.2文档中有用的Link

<强>加成:

您还可以获得通知的用户:

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

答案 1 :(得分: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;
}