Skip to content

Commit

Permalink
Fix array_key_exists error
Browse files Browse the repository at this point in the history
Error:
There is an error in app/code/Macopedia/CategoryImporter/Console/Command/CategoriesCommand.php at line: 159
array_key_exists(): Argument macopedia#2 ($array) must be of type array, null given#0 app/code/Macopedia/CategoryImporter/Console/Command/CategoriesCommand.php(159): array_key_exists()
macopedia#1 vendor/symfony/console/Command/Command.php(298): Macopedia\CategoryImporter\Console\Command\CategoriesCommand->execute()
macopedia#2 vendor/magento/framework/Interception/Interceptor.php(58): Symfony\Component\Console\Command\Command->run()
macopedia#3 vendor/magento/framework/Interception/Interceptor.php(138): Macopedia\CategoryImporter\Console\Command\CategoriesCommand\Interceptor->___callParent()
macopedia#4 vendor/magento/framework/Interception/Interceptor.php(153): Macopedia\CategoryImporter\Console\Command\CategoriesCommand\Interceptor->Magento\Framework\Interception\{closure}()
macopedia#5 generated/code/Macopedia/CategoryImporter/Console/Command/CategoriesCommand/Interceptor.php(23): Macopedia\CategoryImporter\Console\Command\CategoriesCommand\Interceptor->___callPlugins()
macopedia#6 vendor/symfony/console/Application.php(1040): Macopedia\CategoryImporter\Console\Command\CategoriesCommand\Interceptor->run()
macopedia#7 vendor/symfony/console/Application.php(301): Symfony\Component\Console\Application->doRunCommand()
macopedia#8 vendor/magento/framework/Console/Cli.php(116): Symfony\Component\Console\Application->doRun()
macopedia#9 vendor/symfony/console/Application.php(171): Magento\Framework\Console\Cli->doRun()
macopedia#10 bin/magento(23): Symfony\Component\Console\Application->run()
macopedia#11 {main}

The error you're encountering is due to the `array_key_exists` function being called with a null value as the second argument on line 159. This suggests that `$this->headersMap` is null or not an array.

To fix this issue, you should ensure that `$this->headersMap` is initialized as an array before using it in `array_key_exists`. You can modify the mapHeaders method to include an initialization for `$this->headersMap`. Here's an updated version of the mapHeaders method.

By adding the line `$this->headersMap = [];` at the beginning of the method, you ensure that `$this->headersMap` is always an array, even if it wasn't initialized before. This should resolve the `array_key_exists` error.
  • Loading branch information
oviliz committed Dec 2, 2023
1 parent a0d693d commit 66f19a8
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions Console/Command/CategoriesCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,8 @@ protected function mapHeaders($row)
{
$headers = array_merge($this->requiredHeaders, $this->optionalHeaders, $this->additionalHeaders);

$this->headersMap = []; // Initialize headersMap as an empty array

foreach ($row as $key => $item) {
if (in_array($item, $headers)) {
$this->headersMap[$item] = $key;
Expand Down

0 comments on commit 66f19a8

Please sign in to comment.