2013-12-11 107 views
0

嘗試在兩個表之間建立簡單的多重關係。Codeigniter ORM無法建立關係

不幸的是笨口口聲聲說:

「無法找到您所指定的模式:eventtrigger」。

這裏談到的代碼:

class Task extends DataMapper 
{ 
    public $has_one = array('employee', 
          'eventtrigger' => array('class' => 'employee')); 

    […] 
} 

我知道,這是很少的信息。

但我希望有一個關於這個構造的已知問題。

關注:maak

+0

它正是它所說的,Codeigniter無法找到指定模型的事件觸發器。確保你已經創建了一個標題爲「Eventtrigger」(帶有大寫字母E)的模型,並將其保存在模型文件夾中。 – bmorenate

+0

不,這不是我想要的。我想將員工模型作爲事件觸發器,因爲我在這些模型之間有多個關係。在文檔[這裏](http://datamapper.wanwizard.eu/pages/advancedrelations.html)中描述了這種方式,但是我看不到我的錯誤 –

+0

嗯...我會說datapartper的東西是廢料,它看起來很像過時而沒有積極支持。 CI與DB一起工作的活躍記錄類非常簡單。 – bmorenate

回答

0

您還需要定義關係的other_field屬性,你還需要定義在Employee模型的反向關係:

class Task extends DataMapper 
{ 
    public $has_one = array(
     'owner' => array(
      'class' => 'employee', 
      'other_field' => 'owned_task' 
     ), 
     'trigger' => array(
      'class' => 'employee', 
      'other_field' => 'triggered_task' 
     ) 
    ); 
} 

而且在員工型號:

class Employee extends DataMapper { 
    $has_many = array(
     'owned_task' => array(
      'class' => 'task', 
      'other_field' => 'owner' 
     ), 
     'triggered_task' => array(
      'class' => 'post', 
      'other_field' => 'trigger' 
     ) 
    ); 
} 

更多關於此的信息:http://datamapper.wanwizard.eu/pages/advancedrelations.html

不幸的是,正如@bmorenate提到的,DataMapper沒有被主動支持了。