2012-04-23 136 views
3

我使用Kohana v3與數據庫和ORM。 我發現了一個有趣的問題,幫助我補充和樞軸表中讀出附加列: Kohana 3.0.x ORM: Read additional columns in pivot tablesKohana數據透視表,其他列未加載

我得到了2透視表與附加列。其中一個完美的作品,但我陷入了未知與第二。

了2個表,應用和合作夥伴以及我的下一個ORM模型的數據透視表:

class Model_Application extends ORM 
{ 

    protected $_has_many = array(
     'partners'=>array(
      'model'=>'partner', 
      'through'=>'partners_applications', 
      ) 
     ); 
} 

//AND 

class Model_Partner extends ORM 
{ 

protected $_has_many = array(
    'applications' => array(
     'model'=>'application', 
     'through'=>'partners_applications', 
     ) 
    ); 

} 

//plus my pivot table ORM model 

class Model_Partners_applications extends ORM 
{ 

    protected $_belongs_to = array(
      'partner' => array(), 
      'application' => array() 
     ); 
} 

當我試圖讓

$instance = ORM::factory('partners_applications',array('partner_id' => $this->partner,'application_id' => $this->application))->find(); 

Kohana中不停地說:

ErrorException [ Fatal Error ]: Class 'Model_Partners_applications' not found 

我已經三重檢查了模型名稱的構造,但是我找不到錯誤。 在Kohana環境調試部分,我的兩個第一模型被加載,但不是數據透視表。

任何想法?

回答

0

ORM::factory('partners_application'),在Kohana的ORM總是希望單數形式;)

+0

我覺得plurial形式適合於許多人在許多關係Kohana的。無論如何,合作伙伴和/或應用程序的Singular表單會向我發送同樣的錯誤。 – Pioup 2012-04-23 14:57:52

0

Model_Partners_applications應該是application /班/模型/合作伙伴內部/ applications.php

+0

因此,application/classes/model/partners/applications.php包含: 'class Model_Partners_applications extends ORM { protected $ _table_name ='partners_applications'; 保護$ _belongs_to =陣列( '夥伴'=>數組(), '應用'=>數組() ); }' 它不適合我,仍然是同樣的錯誤,新班級甚至沒有加載... – Pioup 2012-04-24 08:26:13