将数据添加到Laravel数据透视表

时间:2019-01-17 18:49:10

标签: laravel

我有一个包含3个表的数据库:userseventsuser_event

我创建活动。创建活动后,我想添加用户。

如何通过表格添加他以添加用户?

我的数据透视表包含:

event_iduser_id

我需要创建一个UserEventController吗?

我的模型关系:

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

用于创建事件:

public function store(Request $request)
{
    $this->validate($request, [
        'course_name'  => 'required|max:255',
        'academic_year' => 'required|max:4|min:4',
        'exam_session' => 'required',
        'date_event' => 'required'
    ]);

    $event = new Event();

    $event->course_name  = $request->course_name;
    $event->academic_year = $request->academic_year;
    $event->exam_session = $request->exam_session;
    $event->date_event = $request->date_event;

    $event->save();
}

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

因此,您需要使用attach()方法:

$event->users()->attach($userId);

更多信息在这里:Laravel Eloquent - Attach vs Sync

答案 1 :(得分:0)

由于事件已创建,因此您可以使用事件对象添加现有用户,创建新用户,甚至同步用户列表。

//create a new user
$event->users()->create(['name' => 'user name', 'email' => 'user email']);

//attach existing user
$event->users()->attach($userId');

//sync multiple existing users passing array of user ids
$event->users()->sync([1,2,4]);

您可以在此处查看有关所有这些方法的详细信息以及其他一些方法:https://laravel.com/docs/5.7/eloquent-relationships#inserting-and-updating-related-models