Laravel 설득력 있는 다중 종속 모델
Laravel 설득력 있는 다중 종속 모델
Null 값의 유효성 검사로 CSV 가져오기를 구현하는 방법은 무엇입니까?
Lets Start
CSV란 무엇입니까?
CSV 또는 쉼표로 구분된 값은 쉼표를 사용하여 값을 구분하지만 때로는 세미콜론과 같은 다른 문자를 사용하여 구분된 텍스트 파일입니다. 각 레코드는 쉼표로 구분된 하나 이상의 필드로 구성됩니다. 구분 기호(필드)로 쉼표를 사용하는 것이 이 파일 형식의 이름 소스입니다. CSV 파일은 일반적으로 표 형식 데이터(숫자 및 텍스트)를 일반 텍스트로 저장하며, 이 경우 각 행에는 동일한 수의 필드가 있습니다.
Laravel 9에서 CSV를 가져오는 방법은 무엇입니까?
laravel 9에서는 CSV 형식의 파일에서 데이터베이스로 데이터를 가져오거나 CSV 형식으로 데이터를 내보내는 기능을 만들기 위해 laravel-excel 패키지를 사용할 수 있습니다. 구현 방법은 아래에서 설명합니다.
Import in Laravel 9
CSV 가져오기
Step 1: Install Laravel
Step 2: Setup Database
Step 3: Create Models
CSV 가져오기
자, 우리가 만든 첫 번째 기능은 CSV 형식 파일에서 데이터베이스의 사용자 테이블로 데이터를 가져오는 기능입니다.
CSV에서 어레이 특성으로
Create Traits folder inside the App directory
namespace App\Traits;
trait CsvToArray
{
/**
* Converts the CSV DATA to an Array with uploaded files
*
* @param string $filename
* @param string $delimiter
* @return array
*/
public function csvToArray(string $filename = '', string $delimiter = ',')
{
if (!file_exists($filename) || !is_readable($filename)) {
return false;
}
$header = null;
$data = [];
if (($handle = fopen($filename, 'r')) !== false) {
while (($row = fgetcsv(
$handle,
1000,
$delimiter
)) !== false) {
if (!$header)
$header = $row;
else
$data[] = array_combine($header, $row);
}
fclose($handle);
}
return $data;
}
}
다중 종속 모델
부모 테이블의 기본 키와 자식 테이블의 외래 키를 따라 배포되는 다른 데이터에 종속됩니다.
public function importEmployee(Request $request)
{
$request->validate(
[
'file' => ['required', 'mimes:csv,txt'],
]
);
$fileName = time() . '.' . $request->file->getClientOriginalExtension();
$request->file->move(public_path('uploads'), $fileName);
$csvFile = public_path('uploads/' . $fileName);
$employees = $this->csvToArray($csvFile);
$user = User::find(Auth::user()->id);
In File upload input make field as accept = csv only.
Here, Dependent model Employee has the data from user to create the new employees.
foreach ($employees as $employee) {
$user->employee()->create([
'username' => ' ' ? $employee['email'] : $employee['username'],
'employeeId' => $employee['employeeId'],
'first_name' => $employee['first_name'],
'last_name' => $employee['last_name'],
'email' => $employee['email'],
'department' => $employee['department'],
'designation' => $employee['designation'],
'password' => ' ' ? Hash::make($employee['email']) : Hash::make($employee['password']),
]);
}
return redirect('employee.details')
->with('success', 'Employee updated Successfully');
}
$user = User::find(Auth::user()->id);
$user->employee()->create
이해해야 할 가장 중요한 두 줄 위.
직원 모델 파일 Employee.php에서
public function user()
{
return $this->belongsTo(
User::class,
'user_id',
'id'
);
}
사용자 모델 파일 User.php에서
public function employee(){
return $this->hasMany(Employee::class);
}
경로 파일 web.php
Route::post('importEmployee', [App\Http\Controllers\EmployeeImportController::class, 'importEmployee']);
결론
이 기사에서는 laravel 9의 CSV 형식으로 Eloquent ORM에서 여러 모델과 관련된 가져오기 데이터를 만드는 방법을 배웠습니다.
Reference
이 문제에 관하여(Laravel 설득력 있는 다중 종속 모델), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vamsikrishna71/laravel-eloquent-multiple-dependent-model-13ba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)