Настройка типа возврата propel для flex - PullRequest
0 голосов
/ 26 июля 2011

Я использую сервер wamp и Propel. Я написал свой сервис с использованием Propel, но когда я хочу подключить данные, возвращенные из сервиса, Flex не может распознать тип возврата.

Это код php, который я написал

<?php 

// Include the main Propel script
require_once 'C:/wamp/propel/runtime/lib/Propel.php';

// Initialize Propel with the runtime configuration
Propel::init("C:/wamp/www/school/build/conf/school-conf.php");

// Add the generated 'classes' directory to the include path
set_include_path("C:/wamp/www/school/build/classes" . PATH_SEPARATOR . get_include_path());

class TeacherService { 
function getTeachers()
{

 $allTeachers=TeacherQuery::create()->find();

 $teachers=array();
 foreach($allTeachers as $teacher1)
 {

  array_push($teachers, $teacher1); 

 }

return $teachers;
}
}
?>

Я хочу отобразить информацию о teacer в сетке данных, но когда я выбираю автоматическое определение типа возврата, выдается ошибка

'teacher' cannot be set to the data type "StdClass" because it has no properties.

Как я могу дать знать Flexсвойства строк учителя, возвращаемых propel?

1 Ответ

0 голосов
/ 26 июля 2011

@www.Flextras.com Propel - это фреймворк PHP ORM.

Если вы хотите, чтобы сериализация работала с вашим классом php, вам понадобится что-то вроде этого

var $_explicitType = "path.to.classes.Teacher";

и на вашей Flex стороне VO у вас должно быть что-то вроде этого.

[Bindable]
[RemoteClass(alias="path.to.classes.Teacher")]

Предполагается, что вы используете AMF. Также в вашей конечной точке AMF вы должны указать отображение, поэтому, например, у меня будет что-то подобное в моем файле конечной точки.

$server->setClassMap('path.to.classes.Teacher' , 'path\to\classes\Teacher');

Это позволяет вашей конечной точке знать, что когда он видит класс с соответствующим дескриптором, в какой класс на стороне PHP он должен быть десериализован.

...