Laravel maatwebsite导入并使用选择表单填充列

时间:2017-01-26 20:27:39

标签: laravel table-relationships excel-import

我正在使用maatwebsite的Excel导入库将员工导入到数据库表中,并且运行良好。但是,在我选择要导入的Excel文件的“查看”页面上,我有一个选择下拉列表,显示相关公司表中的数据,以便将特定的选定公司发布到所有当前导入的员工{{1}外键。我已在相应的Comp_idhasMany模型中创建了belongsToCompany关系。

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?还是有完全不同的方式?

提前致谢。

2 个答案:

答案 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'),
            ];