Добрый день, я очень смущен, почему я продолжаю получать неопределенную ошибку, когда пытался использовать "$x-> split" при повторении через мой массив.
дд
$divs = array(3) {
["items"]=>
array(4) {
[0]=>
object(stdClass)#247 (13) {
["type"]=>
int(6)
["description"]=>
NULL
["transactionType"]=>
string(4) "Bill"
["account_xid"]=>
int(4)
["gt_xid"]=>
int(1)
["u_xid"]=>
int(2001)
["po_xid"]=>
int(0)
["debit"]=>
float(144)
["credit"]=>
float(0)
["date_at"]=>
string(19) "2014-10-17 19:37:50"
["ref_no"]=>
string(2) "22"
["id"]=>
int(1)
["split"]=>
array(1) {
[0]=>
object(stdClass)#246 (1) {
["gt_xid"]=>
int(1)
}
}
}
[1]=>
object(stdClass)#248 (12) {
["type"]=>
int(6)
["description"]=>
NULL
["transactionType"]=>
string(4) "Bill"
["account_xid"]=>
int(4)
["gt_xid"]=>
int(2)
["u_xid"]=>
int(2001)
["po_xid"]=>
int(0)
["debit"]=>
float(0)
["credit"]=>
float(0)
["date_at"]=>
string(19) "2014-11-15 01:40:00"
["ref_no"]=>
string(0) ""
["id"]=>
int(4)
}
[2]=>
object(stdClass)#249 (13) {
["type"]=>
int(6)
["description"]=>
NULL
["transactionType"]=>
string(4) "Bill"
["account_xid"]=>
int(4)
["gt_xid"]=>
int(3)
["u_xid"]=>
int(2001)
["po_xid"]=>
int(0)
["debit"]=>
float(2980)
["credit"]=>
float(0)
["date_at"]=>
string(19) "2014-11-15 06:25:55"
["ref_no"]=>
string(4) "0998"
["id"]=>
int(6)
["split"]=>
array(1) {
[0]=>
object(stdClass)#254 (1) {
["gt_xid"]=>
int(3)
}
}
}
[3]=>
object(stdClass)#250 (13) {
["type"]=>
int(6)
["description"]=>
NULL
["transactionType"]=>
string(4) "Bill"
["account_xid"]=>
int(4)
["gt_xid"]=>
int(4)
["u_xid"]=>
int(2001)
["po_xid"]=>
int(0)
["debit"]=>
float(500)
["credit"]=>
float(0)
["date_at"]=>
string(19) "2014-11-15 06:37:07"
["ref_no"]=>
NULL
["id"]=>
int(8)
["split"]=>
array(1) {
[0]=>
object(stdClass)#256 (1) {
["gt_xid"]=>
int(4)
}
}
}
}
["accountName"]=>
string(15) "Inventory Asset"
["startingBalance"]=>
int(0)
}
дело в том, что я использую такой формат, когда я перебираю свой массив на своих элементах. здесь, как я это делаю.
@foreach($divs as $div)
{{ $div['accountNam'] }}
@foreach($div['items'] as $x)
{{ $x->description }}
{{ $x->date_at }}
{{ $x->transactionType }}
@endforeach
@endforeach
этот код выше работает отлично, но когда я добавляю третий внутренний цикл
@foreach($divs as $div)
{{ $div['accountNam'] }}
@foreach($div['items'] as $x)
{{ $x->description }}
{{ $x->date_at }}
{{ $x->transactionType }}
@foreach($x->split as $z)
----I get error here---
@endforeach
@endforeach
@endforeach
Я получаю эту ошибку: Неопределенное свойство: stdClass :: $ split
когда я пытался dd ($z-> split)
Я получаю этот результат, что означает, что он не пуст или не существует
array(1) { [0]=> object(stdClass)#246 (1) { ["gt_xid"]=> int(1) } }
Можете ли вы помочь мне найти то, что мне не хватает здесь. Чтобы это сработало. Я уже пытался использовать $ z ['gt_xid'], но он дает мне еще одну ошибку: нельзя использовать объект типа stdClass в качестве массива. Спасибо, что потратили время, чтобы прочитать это. хорошего тебе дня!
в вашем массиве $div['items']
- это один элемент (индекс 1) без свойства split
.
если это может произойти, вам нужно защититься от него. Я не знаю, какой синтаксис вы используете, но он будет следовать следующим строкам:
if (isset($x->split) :
@foreach($x->split as $z)
// do stuff
@endforeach
endif;
Я считаю, что второй элемент (ключ 1) вашего массива не имеет значения "split". Вы должны проверить, определено ли "split" (isset($x->split)
), прежде чем пытаться его зацикливать.
@
? Это, в частности, говорит PHP игнорировать любые возможные ошибки и предупреждения, сгенерированные там, что значительно усложняет отладку кода. Избавьтесь от них, и вам будет намного проще отладить время.