Laravel:查询多对多关系

时间:2015-01-23 11:02:27

标签: php laravel-4 many-to-many

我有一个User模型belongsToMany() ConferencesConferences hasMany Users,也是m:m关系。 我正在link()中使用ConferencesController方法,但我不确定该怎么做。

我按Conferenceid编辑Auth::check收集了给定的User。如何将会议和用户添加到pivot table

1 个答案:

答案 0 :(得分:1)

创建数据透视表

//conference_user
Schema::create('conference_user', function(Blueprint $table) {
        $table->increments('id');
        $table->integer('conference_id')->unsigned()->index();
        $table->foreign('conference_id')->references('id')->on('conferences');
        $table->integer('user_id')->unsigned()->index();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
    });

现在在用户模型中,添加此方法

public function conferences()
{
    return $this->belongsToMany('Conference','conference_user');
}

并在会议模型中添加此方法

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

现在在你的控制器中,你可以使用这样的东西

$conferences=$user->conferences;

$users=$conference->users;