0

我正在使用 maatwebsite 的 Excel 导入库将员工导入数据库表,效果很好。但是,在我选择要导入的 Excel 文件的“查看”页面上,我有一个选择下拉列表,其中显示了相关公司表中的数据,以便将特定选定的公司发布到所有当前导入的员工的Comp_id外键。我在各自的and模型中创建了hasManyandbelongsTo关系。CompanyEmployee

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可以为每一行插入所选内容?还是有完全不同的方式?

提前致谢。

4

2 回答 2

1

'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'),
            ];
于 2017-01-28T17:13:50.530 回答
0

假设您的视图有一个带有 select 的表单Comp_id,您应该能够从传入的请求中获取它:

$company->comp_id = $request->get('Comp_id');

只是一个提示:看看 laravel 的质量分配功能。

于 2017-01-26T20:57:20.033 回答