Laravel 5.7: импорт файла Excel в две таблицы через внешний ключ - PullRequest
0 голосов
/ 23 марта 2019

Я попытался импортировать файл Excel в одну таблицу, и он отлично работал, но проблема в том, что модуль Census позволяет пользователю добавлять нового резидента вместе с необходимой информацией, теперь каждый раз, когда пользователь добавляет новый резидент, он также отражается в пользовательской таблице посредством использования внешнего ключа user_no в таблице резидентов. Я хочу достичь этого при импорте файла Excel. это возможно? (простите меня, я все еще новичок с Laravel)

вот мой код для добавления резидента:

public function store(Request $request)
{

    $residents = new Resident;
    $residents->resident_fname = $request->input('resident_fname');
    $residents->resident_lname = $request->input('resident_lname');
    $residents->resident_mi = $request->input('resident_mi');
    $residents->resident_email = $request->input('resident_email');
    $residents->resident_age = $request->input('resident_age');
    $residents->resident_dob = $request->input('resident_dob');
    $residents->role = 'resident';
    $residents->resident_address = $request->input('resident_address');
    $residents->resident_contact = $request->input('resident_contact');
    $residents->resident_gender = $request->input('resident_gender');
    $residents->ResidentVoter_status = $request->input('ResidentVoter_status');
    $residents->resident_status = $request->input('resident_status');
    $residents->resident_religion = $request->input('resident_religion');
    $residents->resident_purok = $request->input('resident_purok');
    $residents->save();

    $res_id = Resident::orderBy('created_at', 'desc')->first();
    $user = new User;
    $user->name = $request->input('resident_fname');
    $user->email = $request->input('resident_email');
    $user->password = Hash::make('123456');
    $user->role = 'resident';
    $user->res_id = $res_id->id;
    $user->save();

    return redirect('/residents')->with('success', 'Successfully Added!');
}

Вот мой код для модели ResidentImport:

 public function model(array $row)
{
    return new Resident([
        'resident_fname' => $row[0],
        'resident_lname' => $row[1],
        'resident_mi'    => $row[2],
        'resident_dob'   => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['3']),
        'role'           => $row[4],
        'resident_age'   => $row[5],
        'resident_address'  => $row[6],
        'resident_contact'  => $row[7],
        'resident_email'    => $row[8],
        'resident_purok'    => $row[9],
        'resident_status'   => $row[10],
        'resident_gender'   => $row[11],
        'resident_religion' => $row[12],
        'ResidentVoter_status'  => $row[13],

    ]);
}

пока это мой ResidentImport Controller:

public function import(Request $request)
{
    $import = Excel::import(new ResidentImport, request()->file('import_file'));
    return redirect('/importing')->with('success', 'Imported Successfully!');
}

Я абсолютно не представляю, что с этим делать. кто-нибудь может мне помочь, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...