2012-10-28 2 views
1

저는 이것을 포기하고 일부 기능을 추가하고자하는 Gallery3의 모듈로 작업하고 있습니다. 나는 모든 것을 조사했고 해결책을 찾을 수 없었습니다.Kohana ORM 다중 관계 모델에서

다음 표가 있습니다.

Products {id, name, description, cost, discount_id, postage_id) 
Discounts {id, name, threshold, amount, maxamount) 
Postage_bands {id, name, flatrate, peritem) 

나는 고객에게 사용한 금액을 기준으로 할인을 제공하기 위해 할인을 추가했습니다. 필자는 기존의 Postage 테이블을 기반으로 관련 페이지를 복사하여 새로운 할인 기능을 사용했습니다. 제품의 관리 페이지에서 각 제품과 관련된 할인 및 우송료를 나열하고 싶습니다.

할인에 대한 관리 페이지는 정상적으로 작동합니다.

내가 문제를 겪고있는 것은 제품과 할인 및 우송 간의 관계입니다. 나는 단지 하나 또는 다른 것을 작동시킬 수 있습니다.

각각 고유 한 파일에 모델이 있습니다.

class Product_Model extends ORM { 
    var $rules = array(
    "name" => "length[1,32]", 
    "description" => "length[0,255]"); 
    protected $belongs_to=array('discount'); 
    protected $belongs_to=array('postage_band'); 
} 

class Postage_Band_Model extends ORM { 
    var $rules = array(
    "name" => "length[1,32]"); 
    protected $has_many=array('products'); 
} 

class Discount_Model extends ORM { 
    var $rules = array(
    "name" => "length[1,32]"); 
    protected $has_many=array('products'); 
} 

정보가 할인에 관한 또는 우편 요금이 표시 뷰 페이지의 코드

<?= html::clean($product->discount->name) ?> 
or 
<?= html::clean($product->postage_band->name) ?> 

내가 할 수있는 유일한 얻을 하나 또는에서 할인 또는 우편 라인을 시들어 주석에 의해 작동하는 다른 Products_model과 코드를 사용하여보기 페이지에 표시하십시오.

하나의 테이블에있는 열의 관계를 두 개의 개별 테이블에있는 열과 함께 사용하려면 어떻게해야합니까? 이 경우

  • Discounts.id에 Products.discount_id가 있으므로 Discounts 테이블의 이름 필드를 가리킬 수 있습니다.
  • Products.postage_id to Postage_bands.id, 그래서 Postage_bands 테이블의 이름 필드를 가리킬 수 있습니다.

또는 필자가 필요한 경우 그 테이블의 다른 필드 사전

+0

망가 정답에게 문제를 해결 – biakaveron

답변

1

당신은 두 번 $의 belongs_to를 선언하는에

감사합니다. 시도 :

class Product_Model extends ORM { 

    protected $belongs_to=array('discount', 'postage_band'); 
} 

은 또한, 나는 그것이 $ _belongs_to

+0

감사를 수락하는 것을 잊지 생각합니다. "$ _belongs_to"vs "$ belongs_to"에 대한 이유는 확실하지 않지만 갤러리 3에서는 진행 방법을 사용하지 않습니다. 답변을 찾을 때, 나는 _이 사용 된 많은 게시물을 보았지만 시도했지만 전혀 작동하지 않았습니다. – user1780848