2011-10-10 13 views
0

我有模型「案例」和「文檔」。他們與很多人有關係。 在同樣的情況下,'客戶'和'文件'。 我正在使用kohana 2.xKohana 2:數據庫錯誤,它不應該是

我有兩種方法。 在控制器「案例」:

public function documents($case_id) { 
    $case = ORM::factory('case', $case_id); 
    $documents = $case->documents; 
    $this->template->view = View::factory('panel/documents/list') 
     ->set('documents', $documents); 
} 

而且在控制器的客戶:

public function documents($customer_id) { 
    $customer = ORM::factory('customer', $customer_id); 
    $documents = $customer->documents; 
    $this->template->view = View::factory('panel/documents/list') 
     ->set('documents', $documents); 
} 

當我運行第一種方法一切正常,但是當我運行第二個方法,我得到錯誤:

Unknown column 'cases_documents.cas_id' in 'where clause' - SELECT `document_id` AS `id` FROM (`cases_documents`) WHERE `cases_documents`.`cas_id` = 1 

錯誤是在371線CMS /系統/庫/驅動程序/數據庫的/ Mysql.php

我不明白爲什麼Kohana中調用SQL查詢與

cases_documents`.`cas_id` = 1 

,而不是

`cases_documents`.`case_id` = 1 

我的情況下模型是這樣的:

class Case_Model extends ORM { 

    protected $belongs_to = array('customer', 'user', 'liquidator' => 'user'); 
    protected $has_many = array('users'); 
    protected $has_and_belongs_to_many = array('documents'); 
    protected $table_name = 'cases'; 

    public $formo_ignores = array('id', 'user_id', 'closed'); 

    public $formo_defaults = array(
     'liquidator_id' => array(
      'type' => 'select' 
     ), 
     'type' => array(
      'type' => 'select' 
     ), 
     'policytype' => array(
      'type' => 'select' 
     ), 
     'reported' => array(
      'type' => 'select' 
     ), 
     'sufferer' => array(
      'type' => 'select' 
     ), 

    ); 
    } 
} 

我的客戶模型是這樣的:

class Customer_Model extends ORM { 

    protected $has_many = array('users'); 
    protected $has_and_belongs_to_many = array('documents', 'cases'); 
    protected $has_one = array('parent'); 
    public $formo_ignores = array('id', 'parent_id'); 

} 

And Docu模型:

class Document_Model extends ORM { 

    protected $has_and_belongs_to_many = array('groups', 'cases', 'customers'); 

    public $formo_ignores = array('id', 'name'); 

} 

請幫助我做錯了什麼,或者我該怎麼做才能使這段代碼有效。

+0

嘗試在模型中添加'protected $ _table_names_plural = FALSE'。 –

回答

0

我已經知道什麼是錯的。

爲了避免這個錯誤我只有通過增加線改變變形器配置文件:

'case' => 'cases' 

得到數組是這樣的:

$config['irregular'] = array 
(
    'child' => 'children', 
    'clothes' => 'clothing', 
    'man' => 'men', 
    'movie' => 'movies', 
    'person' => 'people', 
    'woman' => 'women', 
    'mouse' => 'mice', 
    'goose' => 'geese', 
    'ox' => 'oxen', 
    'leaf' => 'leaves', 
    'course' => 'courses', 
    'size' => 'sizes', 
    'case' => 'cases' 
); 

我希望這將幫助別人同樣的問題。

相關問題