laravel - 导入到“用户”表,但也导入到数据透视表
问题描述
我可以为“用户”表导入,但我还需要导入到数据透视表。这是我的 UsersController 中用于导入“用户”表的代码,但是否可以通过导入向“user_company”、“user_department”等数据透视表提供数据?你能给我看一个导入数据透视表的示例吗?无论如何,这是我的导入代码。
if( Input::file('file_import') ) {
$path = Input::file('file_import')->getRealPath();
$inserts = [];
Excel::load($path,function($reader) use (&$inserts)
{
foreach ($reader->toArray() as $row){
$inserts[] = ['email' => $row['email'], 'username' => $row
['username'], 'password' => $row['password'], 'first_name' => $row['first_name'],'middle_name' => $row['middle_name'], 'last_name' => $row['last_name'], 'gender' => $row['gender'],
'civil_status' => $row['civil_status'], 'spouse' => $row['spouse'], 'religion' => $row['religion'],'emergency_no' => $row['emergency_no'],'previous_work' => $row['previous_work'],
'remarks' => $row['remarks'],'course' => $row['course'],'biometrics' => $row['biometrics'],'immediate_head' => $row['immediate_head'],'designation' => $row['designation'],'level' => $row['level'],
'emp_status' => $row['emp_status'],'dependents' => $row['dependents'],'date_hired' => $row['date_hired'],'regularization_date' => $row['regularization_date'],'remmitance_date' => $row['remmitance_date'],
'tin' => $row['tin'],'philhealth' => $row['philhealth'],'pagibig' => $row['pagibig'],'sss' => $row['sss'],'umid' => $row['umid'],'phone' => $row['phone'],'avatar' => $row['avatar'],
'address' => $row['address'],'country_id' => $row['country_id'],'role_id' => $row['role_id'],'birthday' => $row['birthday'],'status' => $row['status']];
}
});
}
}
if (!empty($inserts)) {
DB::table('users')->insert($inserts);
return back()->with('success','Inserted Record successfully');
}
解决方案
对于这种情况有一个更好的方法,使用 Laravel Eloquent Relationships,但是当使用 Laravel Database Query Builder 时,您应该获取最后插入的 id 并在“user_company”、“user_department”中的下一个插入中使用它。
$userinsert = DB::table('users')->insert($inserts);
$insertedId = $userinsert->id;
$insertsusercompany = [
'user_id' => $insertedId,
'value1' => 'somedata1',
'value2' => 'somedata2'
]
$usercompany = DB::table('user_company')->insert($insertsusercompany);
...对于其他表也是如此,但您应该使用 Eloquent 关系,因为它更容易。
推荐阅读
- c# - 苹果在蛇里面产卵
- .net-core - .NET Core 和 Entity Framework Core 的区别
- javascript - 让 jQuery 切换按预期工作
- python - 我可以将上传到模型的文件与 Django 中匿名用户的会话 ID 相关联吗?
- mysql - 向 Eloquent 查询添加 OR 语句
- android - 如何在 kotlin 的共享表中显示特定的应用程序列表?
- python - 使用 Selenium 抓取时得到一个空列表
- python - Python:扩展类方法并使用类的替换实例
- node.js - Node.JS aws-sdk 出现“套接字挂起”错误
- docker - 尝试设置 Hyperledger Fabric 时出现“检索类型同意者时出错:etcdraft”