Uncaught TypeError: It's not possible to assign a complex type to properties, array given

0

Cześć,
Mam mały problem z błędem:

Uncaught TypeError: It's not possible to assign a complex type to properties, array given

Mój kod:

$parts = self::loadCzesciProducenta($tser_serwis->PM);
file_put_contents("log.txt",json_encode((($xml))), FILE_APPEND);
$xml->SUMA->CZESCI = $tser_serwis->DP_CZESCI;
$xml->SUMA->EKSPERTYZA = $tser_serwis->DP_EKSPERTYZA;
$xml->SUMA->ROBOCIZNA = $tser_serwis->DP_ROBOCIZNA;
$xml->SUMA->TRANSPORT = $tser_serwis->DP_TRANSPORT;
$xml->SUMA->SPRZETZAMIENNY = $tser_serwis->DP_ZAMIENNY;
$xml->SUMA->PODSUMOWANIE = $tser_serwis->DP_WYCENA_TOTAL;
$xml->CZESCI = (array) $parts;

W file_put_contents() mam:

{"SZKPM":"7111375","allowance":"T"}

$xml->CZESCI zwraca:

PHP Fatal error: Uncaught TypeError: It's not possible to assign a complex type to properties, array given

W $parts znajduje się:

[
   {
      "PM":"3078478",
      "IS_ZAMIENNIK":false,
      "EDITABLE":false
   }
]

Wie ktoś może jak to naprawić?

0

W XML "pole" czy tam właściwość to zwykły string. Ty próbujesz tam wsadzić tablicę. Czy chcesz mieć zagnieżdżenie w postaci
części:
-zamiennik

  • nazwa
  • edytowalne
    ? Jeśli tak to po prostu musisz dodać węzeł i wpisać te właściwości.
0

Potrzebuję zrobić po tym foreach ($xml->CZESCI->CZESC as $part). Próbowałem takie rozwiązanie:

$parts = (object)self::loadCzesciProducenta($tser_serwis->PM);
..
$xml->CZESCI = $parts;

gettype($xml) i gettype($parts) zwracają object - ale mam ten sam błąd :(

Generalnie ma być tam lista części. Może być ich 0 - a może i 100 :)

0

No to w pętli dodajesz dziecko:

foreach($parts as $part){
    $xml->addChild($part["name"]);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1