我正在使用maatwebsite的Excel导入库将员工导入到数据库表中,并且运行良好。但是,在我选择要导入的Excel文件的“查看”页面上,我有一个选择下拉列表,显示相关公司表中的数据,以便将特定的选定公司发布到所有当前导入的员工{{1}外键。我已在相应的Comp_id
和hasMany
模型中创建了belongsTo
和Company
关系。
EmployeeController中发送的数据:
Employee
我已将public function viewImport()
{
$employees = Employee::all();
return view('viewImport',
['companies' => Company::pluck('CompanyName', 'Comp_id')
])->withEmployees($employees);
}
public function importExcel(Request $request)
{
if($request->hasFile('import_file')){
$path = $request->file('import_file')->getRealPath();
$data = Excel::load($path, function($reader) {})->get();
$company = Company::.....; /*???????????????
if(!empty($data) && $data->count()){
foreach ($data->toArray() as $key => $value) {
if(!empty($value)){
foreach ($value as $v) {
$insert[] = ['name'=> $v['name'],
'surname'=> $v['surname'],
'idno'=> $v['idno'],
'phone'=> $v['phone'],
'salary'=> $v['salary'],
'dob'=> $v['dob'],
'jobdescription'=> $v['jobdescription'],
'initials'=> $v['initials'],
'Comp_id' => .... /* ???????????????
];
模型作为类包含在EmployeeController中。
我想添加一个字段插入Company
,其中包含所选下拉列表的'Comp_id' => ....
值。如何在函数中创建$ company变量,以便可以为每一行插入选定的Comp_id
?还是有完全不同的方式?
提前致谢。
答案 0 :(得分:0)
假设您的观点的表单中包含选择Comp_id
的表单,您应该可以从您的request中获取它:
$company->comp_id = $request->get('Comp_id');
只是一个提示:看看laravel的mass assignment功能。
答案 1 :(得分:0)
用'comp_id' => $request->get('Comp_id')
绑定它。
foreach ($data->toArray() as $key => $value) {
if(!empty($value)){
foreach ($value as $v) {
$insert[] = ['name'=> $v['name'],
'surname'=> $v['surname'],
'idno'=> $v['idno'],
'phone'=> $v['phone'],
'salary'=> $v['salary'],
'dob'=> $v['dob'],
'jobdescription'=> $v['jobdescription'],
'initials'=> $v['initials'],
'comp_id' => $request->get('Comp_id'),
];