2013-08-02 5 views
0

У меня есть существующий проект в Code Igniter с расширением HMVC. Также используйте php-activerecord через sparc.Как управлять отношением с помощью PHP-activerecord

Для нового модуля я создал две таблицы со связями «один ко многим», которые выполняются непосредственно на уровне БД (в MySQL). Таблицы говорят «nassignment» (PK id) и «nassignment_assignee» (FK assign_id).

В моделях я создал два класса 'nassignment.php', имеющих класс Nassignment и 'nassignment_assignee.php' с именем класса Nassignment_assignee.

Ниже код, который я пытаюсь в контроллере

$this->load->model("nassignment"); 
$nAssignmentArr = $this->nassignment->all(); 

и получить следующее сообщение об ошибке

[Fri Aug 02 13:50:52 2013] [error] [client 127.0.0.1] PHP Fatal error: Uncaught 
exception 'ReflectionException' with message 'Class Nassignmentassignee does not exist' 
in /home/kapil/projects/<project>/application/sparks/php-activerecord/0.0.2/vendor/php- 
activerecord/lib/Reflections.php:33\nStack trace:\n#0 
/home/kapil/projects/<project>/application/sparks/php-activerecord/0.0.2/vendor/php- 
activerecord/lib/Reflections.php(33): ReflectionClass- 
>__construct('Nassignmentassi...')\n#1 
/home/kapil/projects/<project>/application/sparks/php-activerecord/0.0.2/vendor/php- 
activerecord/lib/Relationship.php(286): ActiveRecord\\Reflections- 
>add('Nassignmentassi...')\n#2 /home/kapil/projects/<project>/application/sparks/php- 
activerecord/0.0.2/vendor/php-activerecord/lib/Relationship.php(281): 
ActiveRecord\\AbstractRelationship->set_class_name('Nassignmentassi...')\n#3 
/home/kapil/projects/<project>/application/sparks/php-activerecord/0.0.2/vendor/php- 
activerecord/lib/Relationship.php(464): ActiveRecord\\AbstractRelationship- 
>set_inferred_class_name()\n#4 /home/kapil/projects/<project>/application/sparks/php- 
activerecord/0.0 in /home/kapil/projects/<project>/application/sparks/php- 
activerecord/0.0.2/vendor/php-activerecord/lib/Reflections.php on line 33 

код Модель

nassignment.php

class Nassignment Extends ActiveRecord\Model{ 
    static $table_name = 'nassignment'; 
    //Work fine if I remove following line, but do not get data 
    static $has_many = array(
      array('nassignment_assignee') 
     ); 
} 

nassignm ent_assignee.php

class Nassignment_assignee Extends ActiveRecord\Model{ 
    static $table_name = 'nassignment_assignee'; 
} 

Есть suggesations, почему он не работает

+0

Я думаю, что у меня может быть аналогичная проблема [здесь] (http://stackoverflow.com/questions/19075807/codeigniter-on-1and1-error-reporting). Почему никто не пытается эти вопросы? – iGbanam

ответ

1

Попробуйте убедиться, что имя файла совпадает с именем класса, в случае. См. the solution to my issue

По-видимому, библиотеки также должны быть названы в соответствии с соглашением об именах UCfirst.