2017-01-26 1 views
0

maatwebsite의 Excel 가져 오기 라이브러리를 사용하여 직원을 데이터베이스 테이블로 가져오고 아주 잘 작동합니다. 그러나 가져올 Excel 파일을 선택하는보기 페이지에서 관련된 회사 테이블의 데이터를 표시하는 선택 드롭 다운이 있으므로 선택한 특정 회사가 현재 가져온 모든 직원의 Comp_id 외래 키에 게시됩니다. 각각 CompanyEmployee 모델에서 hasManybelongsTo 관계를 생성했습니다. 에는 EmployeeController 전송Laravel maatwebsite 선택 양식을 사용하여 열을 입력하고 채우기

데이터 : 저는에는 EmployeeController의 클래스와 Company 모델을 포함 시켰습니다

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' => .... /* ??????????????? 
       ]; 

.

필드 삽입 'Comp_id' => ....에 선택한 드롭 다운의 Comp_id 값을 추가하고 싶습니다. 함수에 $ company 변수를 작성하여 모든 행에 대해 Comp_id을 삽입 할 수 있습니까? 아니면 완전히 다른 방법이 있습니까?

미리 감사드립니다. 보기를 가정

답변

0

으로 못을 박았다.

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을 incomming에서 잡아 할 수 있어야한다 :

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

다만 힌트 : laravel의 mass assignment 기능을 살펴 있습니다.

+0

@passioncoder에게 감사드립니다. 컨트롤러에서 코드를 사용하면 – PDevH

+0

... "빈 값에서 기본 객체 만들기"오류가 발생합니다. 나는 질량 할당 기능을 살펴 봤고'Comp_id' 열은'Employee' 모델에서'protected $ fillable'으로 추가되었습니다. – PDevH

관련 문제