maatwebsite의 Excel 가져 오기 라이브러리를 사용하여 직원을 데이터베이스 테이블로 가져오고 아주 잘 작동합니다. 그러나 가져올 Excel 파일을 선택하는보기 페이지에서 관련된 회사 테이블의 데이터를 표시하는 선택 드롭 다운이 있으므로 선택한 특정 회사가 현재 가져온 모든 직원의 Comp_id
외래 키에 게시됩니다. 각각 Company
및 Employee
모델에서 hasMany
및 belongsTo
관계를 생성했습니다. 에는 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
을 삽입 할 수 있습니까? 아니면 완전히 다른 방법이 있습니까?
미리 감사드립니다. 보기를 가정
@passioncoder에게 감사드립니다. 컨트롤러에서 코드를 사용하면 – PDevH
... "빈 값에서 기본 객체 만들기"오류가 발생합니다. 나는 질량 할당 기능을 살펴 봤고'Comp_id' 열은'Employee' 모델에서'protected $ fillable'으로 추가되었습니다. – PDevH