Как получить доступ к этому объекту массива в Laravel 6, используя Eloquent?
[line_items] => Array
(
[0] => stdClass Object
(
[id] => 4088662196333
[variant_id] => 29653605285997
$external = DB::table('orders')->pluck('import_order_data');
...
foreach ($external as $key => $val) {
...
Cart::updateOrCreate([
'line_item_id' => ['line_item_id' => $val['id']],
],
ErrorException
Недопустимое смещение строки 'id'
Если я изменю его на:
'line_item_id' => ['line_item_id' => $val->id],
Я получу ошибку:
ErrorException
Попытка получить свойство 'id' необъекта
Если я изменю его на:
'line_item_id' => ['line_item_id' => $val['line_items']->id],
Я получу ошибку:
Недопустимое смещение строки 'line_items'
РЕДАКТИРОВАТЬ: проблема была:
protected $casts = [
'import_order_data' => 'array',
];
Теперь я могу получить к нему доступ следующим образом:
dd($val['line_items'][0]['id']);
, который обеспечивает:
4092309209197
или
dd($val['line_items']);
, которыйпредоставляет:
array:1 [▼
0 => array:26 [▼
"id" => 4092309209197
"sku" => "1605"
"name" => "Printer Ink"
Какие-либо более удобные варианты доступа к данным?
РЕДАКТИРОВАТЬ: Ответ:
foreach ($val['line_items'] as $index => $lineItem) {
dd($lineItem['id']);
Что обеспечивает:
4092309209197
Это разумный способ сделать это?