2012-06-29 2 views
0

Я пытаюсь построить модели с использованием ORM в FuelPHP, никогда ранее не использовав ORM, поэтому не уверен в некоторых аспектах.FuelPHP ORM - Объект не найден

У меня есть таблица Проект и таблица ревизий. Теперь проекты имеют несколько версий, в редакции есть только один проект.

Однако у меня есть дополнительная связь между Project и Revision, где я всегда сохраняю идентификатор последней версии в моей таблице Project.

Мои таблицы выглядеть следующим образом:

projects 
- id 
- latest_revision_id 
- ... 

revisions 
- id 
- project_id 
- ... 

Проект Модель:

class Model_Project extends Orm\Model 
{ 

    protected static $_belongs_to = array(
     'latest_revision' => array(
      'key_from' => 'latest_revision_id' 
     ), 
    ); 

    protected static $_has_many = array(
    'revisions', 
    ); 

... 

} 

Пересмотр модели:

class Model_Revision extends \Orm\Model 
{ 

    protected static $_belongs_to = array(
     'project', 
    ); 

    protected static $_has_one = array(
     'project' => array(
      'key_to' => 'latest_revision_id', 
     ), 
    ); 

} 

Однако, когда я пытаюсь получить доступ:

$project->latest_revision 

Это дает мне OutOfBoundException: OutOfBoundsException [ Error ]: Property "latest_revision_id" not found for Model_Project.

Я что-то пропустил?

Спасибо!

+0

это правильно? << products >> - идентификатор - latest_revision_id - ... кажется, что ваше имя таблицы некорректные –

+0

Oups! Извините за путаницу, это была просто опечатка в моем посте. Настоящее имя таблицы - проекты – jValdron

+0

Я не использовал топливо какое-то время, когда вернусь домой, я увижу свой старый проект для решения :) –

ответ

1

Похоже, мне пришлось добавить last_revision_id в мой массив $ _properties. Который я клянусь, что я попробовал, прежде чем публиковать вопрос, но предположил, что у меня была другая проблема в то время!

Так что мой проект модель теперь:

protected static $_belongs_to = array(
    'latest_revision' => array(
     'key_from' => 'latest_revision_id', 
     'model_to' => 'Model_Revision', 
    ), 
); 

protected static $_has_many = array(
    'revisions', 
); 

protected static $_properties = array(
    'id', 
    ..., 
    'latest_revision_id', 
); 
Смежные вопросы