2012-06-29 2 views
0

FuelPHP에서 ORM을 사용하여 모델을 만들려고합니다. 이전에는 ORM을 사용하지 않았으므로 확실하지는 않습니다.FuelPHP ORM - 속성을 찾을 수 없습니다.

나는 Project 테이블과 Revision 테이블을 가지고있다. 이제 프로젝트에는 여러 개정판이 있고 개정판에는 하나의 프로젝트 만 있습니다.

그러나 Project (프로젝트) 테이블에 최신 버전의 ID를 항상 유지하는 Project (프로젝트)와 Revision (개정) 사이에 추가 링크가 있습니다.

내 표는 다음과 같다 :

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 >> - ID - latest_revision_id - ... 그것은 당신의 테이블 이름이 잘못 –

+0

Oups 것 같다! 혼란스럽게해서 죄송합니다. 그건 내 게시물의 오타였습니다. 실제 테이블 이름은 프로젝트입니다 – jValdron

+0

잠시 동안 연료를 사용하지 않았습니다. 집으로 돌아올 때 솔루션에 대한 기존 프로젝트를 볼 수 있습니다 :) –

답변

1

내 $ _properties 배열에 latest_revision_id를 추가해야하는 것처럼 보입니다. 나는 내가 질문을 게시하기 전에 시도했지만, 당시에 또 다른 문제가 있다고 생각한다!

그래서 지금 내 프로젝트 모델 :

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', 
); 
관련 문제