Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
gilour
/
laravel
/
scout
/
src
/
Console
:
ImportCommand.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Laravel\Scout\Console; use Illuminate\Console\Command; use Illuminate\Contracts\Events\Dispatcher; use Laravel\Scout\Events\ModelsImported; use Symfony\Component\Console\Attribute\AsCommand; #[AsCommand(name: 'scout:import')] class ImportCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'scout:import {model : Class name of model to bulk import} {--c|chunk= : The number of records to import at a time (Defaults to configuration value: `scout.chunk.searchable`)}'; /** * The console command description. * * @var string */ protected $description = 'Import the given model into the search index'; /** * Execute the console command. * * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function handle(Dispatcher $events) { $class = $this->argument('model'); $model = new $class; $events->listen(ModelsImported::class, function ($event) use ($class) { $key = $event->models->last()->getScoutKey(); $this->line('<comment>Imported ['.$class.'] models up to ID:</comment> '.$key); }); $model::makeAllSearchable($this->option('chunk')); $events->forget(ModelsImported::class); $this->info('All ['.$class.'] records have been imported.'); } }