我正在使用maatwebsite的Excel导入库将雇员导入到数据库表中,它工作得很好。但是,在选择要导入的Excel文件的“查看”页面上,我有一个选择下拉菜单,显示相关公司表中的数据,以便将该特定选定公司发布到所有当前导入员工的外键Comp_id
。我已在相应的Company
和Employee
型号中创建了hasMany
和belongsTo
关系。Laravel maatwebsite导入并填写选择表格
在EmployeeController发送的数据:
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' => .... /* ???????????????
];
我已经包括了Company
模型作为EmployeeController类。
我想添加一个字段插入'Comp_id' => ....
与所选的下拉的Comp_id
值。如何在函数中创建$ company变量,以便可以为每行插入所选的Comp_id
?还是有一种完全不同的方式?
在此先感谢。
感谢您的答复@passioncoder。如果我在控制器中使用你的代码,我得到错误 – PDevH
...“从空值创建默认对象”。我已经查看了批量分配功能,并且在“员工”模型中将“Comp_id”列添加为“protected $ fillable”。 – PDevH