Прежде всего, я не Php geek .. так извините мои небольшие знания в области PHP. Я использую AMFPHP2 с интерфейсом Flex на интерфейсе. я могу вытащить данные из внутреннего интерфейса, как типизированных объектов в порядке, но когда я пытаюсь сохранить, я имею эту проблему, как показано ниже:Нельзя использовать объект типа stdClass как массив
<br /><b>Fatal error</b>: Cannot use object of type stdClass as array in <b>/mnt/array1/share/htdocs/htdocs/admin/application/amf/services/Item.php</b> on line <b>88</b><br />
Ниже код бросает эту ошибку:
Line86 public function saveCollection($collection) {
Line87 for ($i=0; $i<count($collection); $i++) {
Line88 $this->saveItem($collection[$i]);
Line89 }
Line90 }
Ниже являются мои VO классы: ItemVO.php
class ItemVO {
..
..
var $_explicitType = "ItemVO";
..
..
}
ItemVO.as
package models.vo {
[RemoteClass(alias="ItemVO")]
public class ItemVO {
...
...
}
}
Вот моя структура папок:
-root/
------*.html
------*.swf
------application/
-----------------amf/
--------------------/index.php
--------------------/models/vo/all vo files
--------------------/services/all services
-----------------libraries/
--------------------------/Amfphp/
Вот мой index.php
<?php
require_once dirname(dirname(__FILE__)) . '/libraries/Amfphp/ClassLoader.php';
$config = new Amfphp_Core_Config();
$config->serviceFolderPaths = array(dirname(__FILE__) . '/services/');
$voFolders = array(dirname(__FILE__) . '/models/vo/');
$customClassConverterConfig = array(‘customClassFolderPaths’ => $voFolders);
$config->pluginsConfig['AmfphpCustomClassConverter'] = $customClassConverterConfig;
$gateway = Amfphp_Core_HttpRequestGatewayFactory::createGateway($config);
$gateway->service();
$gateway->output();
?>
Любая помощь будет принята с благодарностью. Спасибо.
вы можете попробовать var_dump ($ collection) в строке 87.it может дать намек на проблему. –
Лучшее решение, чем просто сброс всей переменной, особенно если она очень большая, будет gettype ($ collection); – OpenSorceress
Похоже, на стороне PHP мы не можем обрабатывать ArrayCollections.Я попробовал свой код, отправив Arrays из clientide вместо ArrayCollections, и он работал так, как есть. Большое спасибо за все материалы. –