Skip to content

Trying to access array offset on value of type null - PHP 7.4.7 #223

@AntonyPritchett

Description

@AntonyPritchett

Describe the bug

Performing a get on model when only searching for the Partition Key results in error "Trying to access array offset on value of type null". I have a composite key defined

I see your commit a656c26 fixed this issue for another scenario.

Schema

Describe your table schema:

protected $primaryKey = ['userId'];
  protected $compositeKey = ['userId', 'sortKey'];
  protected $dynamoDbIndexKeys = [
    'SortKey' => [ //Global Secondary Index
        'hash' => 'sortKey'
    ],
  ];

Debug info

Show the query that you're having trouble with by copy-pasting the result of:

Trying to get this outputs the error, but my code is:

$personRecords = $this->where('userId', $user->userId)->get();

and stack

  "message": "Trying to access array offset on value of type null",
   "statusCode": 500,
   "debug": {
       "line": 210,
       "file": "/home/vagrant/code/myapp/vendor/baopham/dynamodb/src/ConditionAnalyzer/Analyzer.php",
       "class": "ErrorException",
       "trace": [
           "#0 /home/vagrant/code/myapp/vendor/baopham/dynamodb/src/ConditionAnalyzer/Analyzer.php(210): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()",
           "#1 /home/vagrant/code/myapp/vendor/baopham/dynamodb/src/ConditionAnalyzer/Analyzer.php(117): BaoPham\\DynamoDb\\ConditionAnalyzer\\Analyzer->hasValidQueryOperator()",
           "#2 /home/vagrant/code/myapp/vendor/baopham/dynamodb/src/ConditionAnalyzer/Analyzer.php(70): BaoPham\\DynamoDb\\ConditionAnalyzer\\Analyzer->identifierConditions()",
           "#3 /home/vagrant/code/myapp/vendor/baopham/dynamodb/src/DynamoDbQueryBuilder.php(693): BaoPham\\DynamoDb\\ConditionAnalyzer\\Analyzer->isExactSearch()",
           "#4 /home/vagrant/code/myapp/vendor/baopham/dynamodb/src/DynamoDbQueryBuilder.php(663): BaoPham\\DynamoDb\\DynamoDbQueryBuilder->getAll()",
           "#5 /home/vagrant/code/myapp/vendor/baopham/dynamodb/src/DynamoDbQueryBuilder.php(657): BaoPham\\DynamoDb\\DynamoDbQueryBuilder->all()",
           "#6 /home/vagrant/code/myapp/app/Models/Remote/User.php(49): BaoPham\\DynamoDb\\DynamoDbQueryBuilder->get()",

Version info

  • Laravel: 6.18.22
  • laravel-dynamodb: latest

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions