teamtnt / laravel-scout-tntsearch-driver

Driver for Laravel Scout search package based on https://github.com/teamtnt/tntsearch
MIT License
1.09k stars 142 forks source link

Undefined array key "id" #328

Closed erichtiong closed 1 month ago

erichtiong commented 3 years ago

local.ERROR: Undefined array key "id" {"exception":"[object] (ErrorException(code: 0): Undefined array key \"id\" at M:\Projects\welistall\AL-Rewards\vendor\teamtnt\tntsearch\src\Support\Collection.php:96) [stacktrace]

0 M:\Projects\welistall\AL-Rewards\vendor\teamtnt\tntsearch\src\Support\Collection.php(96): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Undefined array...', 'M:\\Projects\\wel...', 96)

1 M:\Projects\welistall\AL-Rewards\vendor\teamtnt\tntsearch\src\Indexer\TNTIndexer.php(383): TeamTNT\TNTSearch\Support\Collection->get('id')

2 M:\Projects\welistall\AL-Rewards\vendor\teamtnt\tntsearch\src\Indexer\TNTIndexer.php(398): TeamTNT\TNTSearch\Indexer\TNTIndexer->processDocument(Object(TeamTNT\TNTSearch\Support\Collection))

3 M:\Projects\welistall\AL-Rewards\vendor\teamtnt\tntsearch\src\Indexer\TNTIndexer.php(406): TeamTNT\TNTSearch\Indexer\TNTIndexer->insert(Array)

4 M:\Projects\welistall\AL-Rewards\vendor\teamtnt\laravel-scout-tntsearch-driver\src\Engines\TNTSearchEngine.php(69): TeamTNT\TNTSearch\Indexer\TNTIndexer->update(10, Array)

5 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Collections\Traits\EnumeratesValues.php(234): TeamTNT\Scout\Engines\TNTSearchEngine->TeamTNT\Scout\Engines\{closure}(Object(App\Models\SearchMerchantConfig), 0)

6 M:\Projects\welistall\AL-Rewards\vendor\teamtnt\laravel-scout-tntsearch-driver\src\Engines\TNTSearchEngine.php(73): Illuminate\Support\Collection->each(Object(Closure))

7 M:\Projects\welistall\AL-Rewards\vendor\laravel\scout\src\Jobs\MakeSearchable.php(42): TeamTNT\Scout\Engines\TNTSearchEngine->update(Object(Illuminate\Database\Eloquent\Collection))

8 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(36): Laravel\Scout\Jobs\MakeSearchable->handle()

9 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

10 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

11 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))

12 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\Container.php(614): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)

13 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Bus\Dispatcher.php(128): Illuminate\Container\Container->call(Array)

14 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(Laravel\Scout\Jobs\MakeSearchable))

15 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Laravel\Scout\Jobs\MakeSearchable))

16 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Bus\Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))

17 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\CallQueuedHandler.php(120): Illuminate\Bus\Dispatcher->dispatchNow(Object(Laravel\Scout\Jobs\MakeSearchable), false)

18 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}(Object(Laravel\Scout\Jobs\MakeSearchable))

19 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Laravel\Scout\Jobs\MakeSearchable))

20 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\CallQueuedHandler.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure))

21 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\CallQueuedHandler.php(70): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\Queue\Jobs\RedisJob), Object(Laravel\Scout\Jobs\MakeSearchable))

22 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\Jobs\Job.php(98): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\RedisJob), Array)

23 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\Worker.php(414): Illuminate\Queue\Jobs\Job->fire()

24 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\Worker.php(364): Illuminate\Queue\Worker->process('redis', Object(Illuminate\Queue\Jobs\RedisJob), Object(Illuminate\Queue\WorkerOptions))

25 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\Worker.php(158): Illuminate\Queue\Worker->runJob(Object(Illuminate\Queue\Jobs\RedisJob), 'redis', Object(Illuminate\Queue\WorkerOptions))

26 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\Console\WorkCommand.php(117): Illuminate\Queue\Worker->daemon('redis', 'default', Object(Illuminate\Queue\WorkerOptions))

27 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Queue\Console\WorkCommand.php(101): Illuminate\Queue\Console\WorkCommand->runWorker('redis', 'default')

28 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(36): Illuminate\Queue\Console\WorkCommand->handle()

29 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

30 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

31 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))

32 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Container\Container.php(614): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)

33 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Console\Command.php(136): Illuminate\Container\Container->call(Array)

34 M:\Projects\welistall\AL-Rewards\vendor\symfony\console\Command\Command.php(288): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))

35 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Console\Command.php(121): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))

36 M:\Projects\welistall\AL-Rewards\vendor\symfony\console\Application.php(974): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

37 M:\Projects\welistall\AL-Rewards\vendor\symfony\console\Application.php(291): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

38 M:\Projects\welistall\AL-Rewards\vendor\symfony\console\Application.php(167): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

39 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Console\Application.php(92): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

40 M:\Projects\welistall\AL-Rewards\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(129): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

41 M:\Projects\welistall\AL-Rewards\artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

42 {main}

"}

erichtiong commented 3 years ago

this error occurred when using artisan cmd scout:import model

marcag3 commented 1 year ago

you need to include the primary key in the search array

public function toSearchableArray() { return $this->only([ self::ID, //important self::TITLE, self::DESCRIPTION, self::MATERIAL ]); }