我可以使用以下方法创建新用户:
User::create([
'username' => $data[ 'username' ],
'email' => $data[ 'email' ],
'first_name' => $data[ 'first_name' ],
'last_name' => $data[ 'last_name' ],
'password' => bcrypt($data[ 'password' ]),
]);
但是现在我想创建一个现在具有 region_id 约束的用户,所以我认为可以通过将 region_id 添加到可填充,并将其添加到用户创建来完成:
User::create([
'region_id' => $data[ 'region_id'
'username' => $data[ 'username' ],
'email' => $data[ 'email' ],
'first_name' => $data[ 'first_name' ],
'last_name' => $data[ 'last_name' ],
'password' => bcrypt($data[ 'password' ]),
]);
在我的迁移中,我添加了:
$table->integer('region_id')->unsigned();
$table->foreign('region_id')
->references('id')
->on('regions');
并通过仅分配 region_id 使用工厂为其播种,但现在在应用程序中注册失败并抛出:
Undefined index: region_id
我再次查看了文档,发现我可以在这个字段的迁移中添加一个索引,但是在阅读更多之后,MySQL 似乎实际上可能会自动索引外键。