Laravel 4 - 将多个值插入数据透视表

时间:2015-05-01 14:50:09

标签: php mysql laravel-4 pivot-table

我有一个用户表和一个帐户表。

此帐户表定义了用户可以拥有的帐户。

e.g。

帐户:

id| name

1 | library
2 | school
3 | maths

用户:

id| username

1 | username1
2 | username2

我现在有另一个表:users_accounts

user_id | account_id

我正在为要创建的新用户创建一个界面。在此页面上,我有基本的详细信息,但也有一个复选框列表(从帐户表创建)。复选框表示用户需要为其设置的帐户。

我想要做的是创建帐户时:

$user = User::create($input);

我还要将用户ID和他们需要设置的帐户添加到users_accounts表中。单个用户可以拥有多个帐户。

我可以使用数据透视表和belongsToMany吗?

长期来说:

$user = User::create($input);

loop through the checkboxes {
    add a new row into the user_accounts table with the ticked checkboxes
}

1 个答案:

答案 0 :(得分:1)

你快到了!

$user = User::create($input);

$userAccounts = array();
foreach ($checkboxes as $accountId) {
    $userAccounts[] = new UserAccount(['account_id' => $accountId]);
}
$user->accounts()->saveMany($userAccounts);

文档: http://laravel.com/docs/5.0/eloquent#inserting-related-models