Laravel-excel: [рдкреНрд░рд╕реНрддрд╛рд╡] рд╕реАрдзреЗ рдЖрдпрд╛рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЖрдЗрдЯрдо рдЖрдпрд╛рдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЬрдире░ 2019  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Maatwebsite/Laravel-Excel

рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ

рд╕рдВрд╕реНрдХрд░рдгреЛрдВ

  • рдкреАрдПрдЪрдкреА рд╕рдВрд╕реНрдХрд░рдг: 7.1.9
  • рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: 5.7.19
  • рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг: 3.0+

рд╡рд┐рд╡рд░рдг

рдореЙрдбрд▓ рдХреЛ рд╕реАрдзреЗ рд╕рд╣реЗрдЬреЗ рдмрд┐рдирд╛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдпрд╛рдд рд╕реЗ рдореЙрдбрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 2.1.30 рд╕реЗ 3.0.0 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдореЙрдбрд▓ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╕рд╛рде рд╣реА, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджреЛ рд╕рдВрдмрдВрдзрд┐рдд рдореЙрдбрд▓ (рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдХреЗрд╡рд▓ рдПрдХ рдореЙрдбрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ CSV рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреБрдирд░реНрдЧрдарди рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдЖрдИрдПрдордУ, 3.0.0+ рдЖрджрд░реНрд╢ рд╕реНрдерд┐рддрд┐ рдкрд░ рдмрд╣реБрдд рдХрд╕рдХрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдореЙрдбрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбрд▓ рдХреЛ рддрддреНрдХрд╛рд▓ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред 2.X рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ реи.рез.рейреж рдХреЛ рдирд╣реАрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░рд┐рддреНрдпрдХреНрдд phpoffice/phpexcel рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐ рдХреЛ Excel рдореБрдЦреМрдЯрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ import рдХреЗ рд╕рдорд╛рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореЙрдбрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:

$users = Excel::load(new UsersImport, 'users.xlsx');

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдпрд╛рдд рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ item рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХреЗрд╡рд▓ рдореЙрдбрд▓ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреА рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@WouterFlorijn рдЖрдк рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$array = Excel::toArray([], 'file.xlsx');

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ToModel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдпрд╛рдд рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ 1 рдореЙрдбрд▓ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 2.1 рдХреЗ рд╕рдорд╛рди рд╣реИ, рддреЛ рдЖрдкрдХреЛ ToCollection рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: https://laravel-excel.maatwebsite.nl/3.1/imports/collection.html рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ 2.1 рдореЗрдВ рдорд┐рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдорд╛рди рд╕рдВрдЧреНрд░рд╣ рдорд┐рд▓рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдореЙрдбрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рди рдХрд┐ рдЖрдкрдХреА рдЖрдпрд╛рдд рд╡рд╕реНрддреБ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ) рдореЗрдВ ::toCollection рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдХрдЪреНрдЪреА рдкрдВрдХреНрддрд┐ (рдореЙрдбрд▓ рдореЗрдВ рдХреЛрдИ рд░реВрдкрд╛рдВрддрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) .
(https://laravel-excel.maatwebsite.nl/3.1/imports/basics.html#importing-to-array-or-collection)

$users = Excel::toCollection(new UsersImport, 'users.xlsx');

@patrickbrouwers рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рддреЛ рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, Excel::import рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдпрд╛рдд рдкрд░ рдЬреЛ ToCollection рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕рд╣реЗрдЬреЗ рдмрд┐рдирд╛ рдореЙрдбрд▓ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ https://laravel-excel.maatwebsite.nl/3.1/imports/collection.html рдХреЗ рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

public function import() 
{
    Excel::import(new UsersImport, 'users.xlsx');
}

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХрд╣реАрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореЙрдбрд▓реЛрдВ рдХрд╛ рдЖрдпрд╛рддрд┐рдд рд╕рдВрдЧреНрд░рд╣ рд╕реАрдзреЗ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдзрд┐ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВ)ред рдЕрдиреНрдпрдерд╛ рдпрд╣ рдПрдХ рдЪрд░ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ import рдХреЙрд▓ рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рд╣реЛрдЧрд╛?

@WouterFlorijn рдирд╣реАрдВ, ::import() рдХрднреА рднреА рдХреЛрдИ рдкрдВрдХреНрддрд┐ рдпрд╛ рдореЙрдбрд▓ рдирд╣реАрдВ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдХреЗрд╡рд▓ Excel::toCollection() рдХрд░рддрд╛ рд╣реИред

ToCollection рдЪрд┐рдВрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Excel::toCollection() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИред
ToCollection рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рд╕рдВрдкреВрд░реНрдг рдЖрдпрд╛рдд рдЖрдпрд╛рдд рд╡рд╕реНрддреБ рдХреЗ рднреАрддрд░ рд╕рдорд╛рд╣рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред ToCollection рдореЗрдВ рдХреБрдЫ рд▓реМрдЯрд╛рдирд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

@patrickbrouwers рдмрд╕ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЧрд▓рдд рд╕рдордЭ рд░рд╣реЗ рд╣реИрдВред рдЬреЛ рдореИрдВ рдмрд╕ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдмрд┐рдирд╛ рд╕рд╣реЗрдЬреЗ рдореЙрдбрд▓ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддреА рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЖрдпрд╛рдд рд╡рд░реНрдЧ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрдм рддрдХ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░:

рд▓реЗрдирджреЗрди рдЖрдпрд╛рдд.php:

<?php

namespace App\Imports;

use App\Banks\Transaction;
use Carbon\Carbon;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class TransactionsImport implements ToModel, WithHeadingRow
{
    public function model(array $row)
    {
        $transaction = new Transaction;
        $transaction->amount = $row['amount'];
        $transaction->currency = $row['currency'];

        return $transaction;
    }
}

рд▓реЗрдирджреЗрди рдирд┐рдпрдВрддреНрд░рдХ.php:

...
$transactions = Excel::someFunction(new TransactionsImport, 'path/to/file.csv');
// $transactions is a Collection of Transaction models that are not saved to the database yet.
...

рдореБрдЭреЗ toCollection рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рднреА рдорд┐рд▓реАрдВ:

  1. рдпрд╣ рдПрдХ рдПрдХрд▓ рдЖрдЗрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реЛрддрд╛ рд╣реИред
  2. рдпрд╣ рдПрдХ рдЖрдпрд╛рдд рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЬреЛ рдореИрдВ рдмрд╕ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдмрд┐рдирд╛ рд╕рд╣реЗрдЬреЗ рдореЙрдбрд▓ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддреА рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЖрдпрд╛рдд рд╡рд░реНрдЧ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрдм рддрдХ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

рд╢рд╛рдпрдж рдпреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛрдВ:
рдЕрдкрдиреЗ рджрдо рдкрд░ рд╣рда рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ

@WouterFlorijn рдЖрдк рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$array = Excel::toArray([], 'file.xlsx');

@WouterFlorijn рдЖрдк рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$array = Excel::toArray([], 'file.xlsx');

рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред

рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП +1ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореЙрдбрд▓() рдФрд░ рд╕рдВрдЧреНрд░рд╣() рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреБрдЫ рднреА рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рдПрдХреНрд╕реЗрд▓/рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдореЙрдбрд▓/рдПрд░реЗ рдХреЗ рд╕рдВрдЧреНрд░рд╣ (рдпрд╛ рдРрд░реЗ) рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреГрдврд╝рддрд╛ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛: рдореИрдВ рдПрдХ рд╕реАрдПрд╕рд╡реА рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рддрд┐рдерд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрджрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдЖрдпрд╛рддрд┐рдд рд╕реАрдПрд╕рд╡реА рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдУрд╡рд░рд▓реИрдк рд╕рд╣реА рд╣реИ, рдЗрд╕реЗ рдХреБрдЫ рднреА рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЖрд╣, рдореИрдВ рдПрдХ рдмрдВрдж рдореБрджреНрджреЗ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд░рд╣рд╛ рд╣реВрдВред рдЖрдкрдиреЗ рдЗрд╕ @WouterFlorijn рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛?

рдЖрдк рд░рд╛рдЬреНрдп рдХреЛ рдЖрдпрд╛рдд рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рд░рдЦрдХрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЕрдВрджрд░ toModels рд╡рд┐рдзрд┐ рдХреЛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рднреА рдирд┐рд░реНрдпрд╛рддреЛрдВ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

new UsersImport implements ToModel, WithHeadingRow
{
    use Importable;

    protected array $models;

    public function model(array $row)
    {
         $this->models[] = new User($row);
    }

    public toModels(string $filename): array
    {
       $this->import($filename);

        return $this->models;
    }
}
$nonPersistedUsers = (new UsersImport)->toModels('users.xlsx');
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

contifico picture contifico  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

amine8ghandi8amine picture amine8ghandi8amine  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gamevnlc picture gamevnlc  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thearabbit picture thearabbit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

daraghoshea picture daraghoshea  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ