Този код работи:
1 <?
2
5 require( '/var/www/Propel/runtime/lib/Propel.php' );
6 // Initialize Propel with the runtime configuration
7 Propel::init("/home/foo/Projects/bar/classes/orm/build/conf/myconfig-conf.php");
8 // Add the generated 'classes' directory to the include path
9 set_include_path( $_SERVER['DOCUMENT_ROOT'] . "/classes/orm/build/classes/" . get_include_path());
10
11 $PQ = new ProjectsQuery();
12 $projects = ProjectsQuery::create()->find();
13 print_r( $projects );
15
16 ?>
Въпреки това, ако поставя точно същия код вътре в клас или функция (ще използвам функция за този пример), получавам грешка и обектите не са print_r
1 <?
2
3 require( '/var/www/Propel/runtime/lib/Propel.php' );
4 // Initialize Propel with the runtime configuration
5 Propel::init("/home/foo/Projects/bar/classes/orm/build/conf/myconfig-conf.php");
6 // Add the generated 'classes' directory to the include path
7 set_include_path( $_SERVER['DOCUMENT_ROOT'] . "/classes/orm/build/classes/" . get_include_path());
8
9 public function foo()
10 {
11 $PQ = new ProjectsQuery();
12 $projects = ProjectsQuery::create()->find();
13 print_r( $projects );
14 }
15 ?>
Грешката, която получавам в регистрационния файл, казва
[Сряда, 8 февруари, 03:03:02 2012] [грешка] [клиент x.x.x.x] PHP Фатална грешка: Неуловено изключение „PDOException“ със съобщение „SQLSTATE[42000]: Синтактична грешка или нарушение на достъпа: 1064 Имате грешка в SQL синтаксиса ; проверете ръководството, което съответства на вашата версия на MySQL сървър за правилния синтаксис, който да използвате близо до „FROM“ на ред 1 в /var/www/Propel/runtime/lib/query/ModelCriteria.php:1284\nПроследяване на стека:\n# 0 /var/www/Propel/runtime/lib/query/ModelCriteria.php (1284): PDOStatement->execute()\n#1 /var/www/Propel/runtime/lib/query/ModelCriteria.php(1137) : ModelCriteria->doSelect(Object(PropelPDO))\n#2 /home/foo/Projects/bar/models/Projects.php(12): ModelCriteria->find()\n#3 /home/foo/Projects/ bar/controllers/Projects.php(11): foo()\n#4 /home/foo/Project s/bar/project-listings.php(6): Projects->__construct()\n#5 {main} \n\nСледващо изключение „PropelException“ със съобщение „Не може да се изпълни оператор SELECT [SELECT FROM] [обвито: SQLSTATE[42000]: Синтактична грешка или нарушение на достъпа: 1064 Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на yo в /var/www/Propel/runtime/lib/query/ModelCriteria.php на линия 1287
Може ли някой с повече опит с Propel ORM да ми каже как мога да използвам propel в клас или функция. Само възможността да го използвате по първия начин, който споменах, няма да работи. И аз просто използвам прав php. Без рамка или нещо друго.