рдореБрдЭреЗ рдЖрдпрд╛рдд рдХреЗ рдмрд╛рдж рдХреА рдШрдЯрдирд╛ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред рдШрдЯрдирд╛ рдХрднреА рдирд╣реАрдВ рдЬрд▓рддреА рд╣реИред :(
рдЖрдлреНрдЯрд░ рд╢реАрдЯ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?
рдореИрдВ рджреЛрдиреЛрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдШрдЯрдирд╛рдУрдВ рдФрд░ рдСрдЯреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдШрдЯрдирд╛рдУрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред
namespace App\Imports;
use App\Order;
use App\Order\Address;
use Illuminate\Contracts\Queue\ShouldQueue;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\RegistersEventListeners;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithBatchInserts;
use Maatwebsite\Excel\Concerns\WithChunkReading;
use Maatwebsite\Excel\Concerns\WithCustomCsvSettings;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Events\AfterImport;
use Maatwebsite\Excel\Events\BeforeImport;
class OrderAddressImport implements
WithHeadingRow,
ToModel,
WithBatchInserts,
WithChunkReading,
WithCustomCsvSettings,
ShouldQueue,
WithEvents
{
use Importable, RegistersEventListeners;
protected $order;
public function __construct(Order $order)
{
$this->order = $order;
}
/**
* <strong i="16">@param</strong> array $row
* <strong i="17">@return</strong> Address
*/
public function model(array $row)
{
$data = ['order_id' => $this->order->id];
$data = array_merge($data, $row);
return new Address($data);
}
public function batchSize() : int
{
return 1000;
}
public function chunkSize() : int
{
return 5000;
}
/**
* <strong i="18">@return</strong> array
*/
public function getCsvSettings(): array
{
return [
'delimiter' => ';',
'enclosure' => '',
'input_encoding' => 'UTF-8'
];
}
public static function afterImport(AfterImport $event)
{
dd($event);
}
}
рдореЗрд░реЗ рд╕рд╛рде рднреА рд╡рд╣реА рджрд┐рдХреНрдХрдд рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк WithChunkReading
рдЕрдиреБрдмрдВрдз рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ AfterImport
рдИрд╡реЗрдВрдЯ рдХреЛ рдХрднреА рднреА рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рдкрд╣рд▓реЗ рдЖрдпрд╛рдд рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ
рдореИрдВрдиреЗ рдХреЛрдб рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдбрд╛рд▓реА рдФрд░ рдХреЛрдИ рднреА рдХреЛрдб рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдЬреЛ рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ ChunkReader рд╡рд░реНрдЧ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрдЧ рд▓рдЧрд╛ рджреЗрдЧрд╛ред
рдФрд░ рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдПрдХ рдиреМрдХрд░реА рдХрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдж рдореЗрдВ рдЖрдпрд╛рдд рд╡рд┐рдзрд┐ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ?
рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдХреЛрдИ рдЬрд╡рд╛рдм рд╣реИ? :)
рд╣рд╛рдВ, рд╣рдордиреЗ рдЗрд╕реЗ рдПрдХ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рд╣реИред рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
@GlennM рдЗрд╕рдХреЗ рд╕рд╛рде рдмреЛрд▓рддреЗ рд╣реБрдП, рдореИрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдкрд╣рд▓реЗ рдФрд░ рдЖрдлреНрдЯрд░рдЪрдВрдХ рдИрд╡реЗрдВрдЯ рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ, рдкреНрд░рдЧрддрд┐ рдХреЗ рдлреНрд░рдВрдЯ рдПрдВрдб рдЧреБрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП ... рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЗрдВ , рдХреБрд▓ рдЧрд┐рдирддреА + рдХреБрд▓ рднрд╛рдЧ + рд╡рд░реНрддрдорд╛рди рдЦрдВрдб (рдХреЗрд╡рд▓ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореЗрд░реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╛рдЗрд▓реЗрдВ рдЬреАрдпреВрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИрдВ рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдмрдбрд╝реА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдпрд╣ рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ" рдПрдХ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ рдкреНрд░реЛрдЧреЗрд╕ рдмрд╛рд░
рдкрд╣рд▓реЗ рдЪрдВрдХ рдФрд░ рдЖрдлреНрдЯрд░рдЪрдВрдХ рдзреНрд╡рдирд┐ рд╕рдВрднрд╡ рд╣реИред
рдкрд╣рд▓реЗ рдЖрдпрд╛рдд/рдЖрдлреНрдЯрд░ рдЖрдпрд╛рдд рдЕрдзрд┐рдХ рдореБрд╢реНрдХрд┐рд▓ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ 2 рдЕрддрд┐рд░рд┐рдХреНрдд рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ, рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреЛ 2x рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдиреМрдХрд░реА рдкрд░ рдкрд╣рд▓реЗ рдЖрдпрд╛рдд рдФрд░ рдЖрдЦрд┐рд░реА рдиреМрдХрд░реА рдкрд░ рдмрд╛рдж рдХреЗ рдЖрдпрд╛рдд рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред
рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЛ рдЦрдВрдбрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдЖрдпрд╛рдд/рдЖрдлреНрдЯрд░ рдЖрдпрд╛рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП +1ред рдореИрдВ рдЗрдиреНрд╣реЗрдВ рджреЛ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкрд░ рд╣реИрдВ! рдкрд╣рд▓реА рдФрд░ рдЖрдЦрд┐рд░реА рдиреМрдХрд░реА рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рднреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред
AfterImport ShouldQueue рдФрд░ WithChunkReading рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЗрдВ рдХрддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдХрддрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдШрдЯрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд╕рд╛рде:
$ рдЖрдпрд╛рдд-> рдХрддрд╛рд░ ('users.xlsx') -> рд╢реНрд░реГрдВрдЦрд▓рд╛ ([
рдирдпрд╛ NotifyUserOfCompletedImport (рдЕрдиреБрд░реЛрдз () -> рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ()),
]);
рдкреНрд░рддреНрдпреЗрдХ рдХрддрд╛рд░ рдЖрдЗрдЯрдо рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: NotifyUserOfCompletedImport
рдЕрд▓рдЧреБрдорд╛ рд╕реБрдЧреЗрд╕реНрддреЛ?
рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдБред рдПрдХ рдЬреЙрдм рдЗрдВрдкреНрд▓реАрдореЗрдВрдЯрд┐рдВрдЧ рд╢реЙрд▓реНрдбрдХреНрдпреВ рдмрдирд╛рдХрд░, рдлрд┐рд░ рдЙрд╕рд╕реЗ рдЗрдореНрдкреЛрд░реНрдЯ рдЪрд▓рд╛рдХрд░ рдФрд░ рдЗрдореНрдкреЛрд░реНрдЯ рдЦрддреНрдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЬрд░реВрд░реА рдПрдХреНрд╢рди (рдЬреЛ рдХрд┐ рдЖрдлреНрдЯрд░рдЗрдореНрдкреЛрд░реНрдЯ рдЗрд╡реЗрдВрдЯ рдореЗрдВ рд╣реЛрдЧрд╛) рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реЙрд▓реНрд╡ рдХрд┐рдпрд╛ред рдЖрдпрд╛рдд рдиреЗ рдмреИрдЪ рдЖрд╡реЗрд╖рдг рдФрд░ рдЪрдВрдХ рд░реАрдбрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдиреМрдХрд░реА рдореЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдПрдХ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдХрддрд╛рд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред
рдФрд░ рджреВрд╕рд░рд╛ (рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг) рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдХрддрд╛рд░рдмрджреНрдз рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде XLS рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдпрд╛рдд рд╡рд░реНрдЧ рдореЗрдВ рд╣реА рдХрдВрдзреЗ рдХреНрдпреВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
ihave рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ question рдореИрдВ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ .... рдХреГрдкрдпрд╛
@ zxl2006001 @patrickbrouwers рд╕реЗ рдЕрджреНрдпрддрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рдЗрд╕ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреАред
(new UsersImport)->queue('users.xlsx')->chain([
new NotifyUserOfCompletedImport(request()->user()),
]);
рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ: https://docs.laravel-excel.com/3.1/imports/queued.html#appending -jobs
рд╡рд░реНрддрдорд╛рди рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ:
рдкрд╛рдардХ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЖрдпрд╛рдд рдХреЛ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрдпреЛрдВ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ChunkReader рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдХрд╛рд▓ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкрдврд╝рдирд╛ред
рдЦрдВрдбрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЖрдк рдХрд┐рд╕реА рднреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреМрдХрд░реА рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ "currentFile" рд╕рдВрдкрддреНрддрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреА рдЙрдЪрд┐рдд рд╕рдлрд╛рдИ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рднреА рд░реАрдбрдЪрдВрдХ рдХреЗ рдмрд╛рдж рдЬрдВрдЬреАрд░ рд╡рд╛рд▓реА рдиреМрдХрд░реА рдмрд╛рдж рдореЗрдВ рдЖрдпрд╛рдд рдФрд░ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдЕрд╕реНрдерд╛рдпреА рд╕рдлрд╛рдИред
рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд╕рдлрд▓ рдЖрдпрд╛рддреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░реНрдп-рдкреНрд░рдгрд╛рд▓реА рд╣реИ? рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЬреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рд▓рд╛рд░реНрд╡рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдиреМрдХрд░реА рддреНрд░реБрдЯрд┐ рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ aatwebsiteExcel\Jobs\ReadChunk рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдШрдЯрдирд╛ рдХреЛ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рд╡рд┐рдлрд▓ рдиреМрдХрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдПред
рдЪрдВрдХрд╕рд╛рдЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ?
рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ 3.1-рджреЗрд╡) рдХреЛ рдЪрдВрдХ рд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ/рдмрд╛рдж рдХреЗ рдЖрдпрд╛рдд рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛ред рдпрд╣ ImportFailed
рдИрд╡реЗрдВрдЯ рднреА рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рднреА рдЪрдВрдХ рдЬреЙрдм рдХреЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред (https://twitter.com/patrickbrouwers/status/1114166252711415808)
3.1 рд╢рд╛рдЦрд╛ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдкрд╡рд╛рдж рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд░ рдореИрдВ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП database
рдХрддрд╛рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдкрдиреЗ рдЖрдпрд╛рдд рд╡рд░реНрдЧ рдкрд░ WithChunkReading
рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ AfterImport
рдИрд╡реЗрдВрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╡рд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ?
рдореИрдВ AfterImport
рдкреНрд░рддреНрдпреЗрдХ рд╕рдлрд▓ рдЖрдпрд╛рдд рдХреЗ рдмрд╛рдж database
рдХрддрд╛рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 3.1
рд╕рд╛рде рджреЛ рдмрд╛рд░ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ database
рдХрддрд╛рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 3.1
рд╕рд╛рде рдПрдХ рд╕рдлрд▓ рдЖрдпрд╛рдд рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж AfterImport
рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдЕрдЧрд░ рдореИрдВ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХрддрд╛рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ WithChunkReading рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрдИ рдмрд╛рд░ AfterImport рдИрд╡реЗрдВрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ
рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рд╣реИ:
local.ERROR: unlink(/Users/sineld/Code/project/public/uploads/tmp/laravel-excel-qfK6O5aCHxhFXioVayQbLQag5UnFKyxB.xlsx): No such file or directory {"exception":"[object] (ErrorException(code: 0):
рд╡рд╣реА рдЙрд╕рдХреЗ рдмрд╛рдж рдЖрдпрд╛рдд рджреЛ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЖрдлреНрдЯрд░рдЗрдореНрдкреЛрд░реНрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдореЗрдВ рднреА рджреМрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рджреЛ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред Xdebug рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╢реНрд░реЛрддрд╛ рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ:
рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рддрдп
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ 3.1-рджреЗрд╡) рдХреЛ рдЪрдВрдХ рд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ/рдмрд╛рдж рдХреЗ рдЖрдпрд╛рдд рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛ред рдпрд╣
ImportFailed
рдИрд╡реЗрдВрдЯ рднреА рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рднреА рдЪрдВрдХ рдЬреЙрдм рдХреЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред (https://twitter.com/patrickbrouwers/status/1114166252711415808)3.1 рд╢рд╛рдЦрд╛ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдкрд╡рд╛рдж рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред