2010-08-17 2 views
0

속성 내가이 MySQL의 테이블 (간략화 됨)이 있습니다Kohana3 ORM은 :로드 키/값

articles 
- id 
- description 

article_attributes 
- article_id 
- attribute_name 
- attribute_value 

그래서, 모든 articleattributes의 무제한을 가질 수 있습니다. 는 articles를 들어 내가 가지고 Kohana_ORM 모델

<?php class Model_Article extends ORM {} ?> 

내가 모든 속성에 대한 액세스 권한을하고 싶은 모델을로드.

예 :

<?php 
$article = new Model_Article(1); // or ORM::factory('article', 1); 
echo $article->description; 
echo $article->attribute->foo; 
echo $article->attribute->bar; 
?> 

사람이 올바른 방향으로 날 지점 시겠어요하는 방법이 실현하려?

답변

1

Kohana ORM guide을 읽어야합니다. 그것은 일대일, 일대 다 (귀하의 경우) 및 다 대 다 관계를 다룹니다. 나는 약간의 코드가 있기 때문에 여기에 코드를 붙여 넣지 않았다.

4

2 개의 모델을 만들 필요가 있다고 생각합니다. 각각의 테이블마다 하나씩 정의한 다음 이들 간의 관계를 정의해야합니다.

class Model_Article extends ORM 
{ 
    protected $_has_many = array('attributes' => array()); 
} 

class Model_Atribute extends ORM 
{ 
    protected $_table_name = 'article_attributes'; 
    protected $_belongs_to = array('article' => array()); 
} 

그런 다음 당신이 할 수있는

이 시도

,

$article = ORM::factory('article', 1); 
$article_attributes = $article->attributes->find_all(); 

이 문제가 해결 아닌지 모르겠어요,하지만이 답변이 도움이되기를 바랍니다.