2017-01-26 117 views
0

我正在使用maatwebsite的Excel导入库将雇员导入到数据库表中,它工作得很好。但是,在选择要导入的Excel文件的“查看”页面上,我有一个选择下拉菜单,显示相关公司表中的数据,以便将该特定选定公司发布到所有当前导入员工的外键Comp_id。我已在相应的CompanyEmployee型号中创建了hasManybelongsTo关系。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?还是有一种完全不同的方式?

在此先感谢。

回答

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

假设你的观点有与你Comp_id一个选择一种形式,你应该能够从你进来的request抓住它:

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

只是一个提示:看看laravel的mass assignment功能。

+0

感谢您的答复@passioncoder。如果我在控制器中使用你的代码,我得到错误 – PDevH

+0

...“从空值创建默认对象”。我已经查看了批量分配功能,并且在“员工”模型中将“Comp_id”列添加为“protected $ fillable”。 – PDevH