2012-12-26 36 views
0

我正在使用ActiveRecord已存在數據庫。 我需要獲得有關ACCOUNT_TYPE一個personan相關的所有帳號=「A」,所以我必須:phpactiverecord:通過條件獲取對象

class Person extends ActiveRecord\Model { 

static $has_many = array(
    array(
     'accounts', 
     'conditions' => array('account_type = ?' => array('A')), 
     'class_name' => 'Accounts', 
     'foreign_key' => 'idpersona' 
    ) 
); 

但我得到的錯誤No bound parameter for index 3。我試圖刪除線'conditions' => array('account_type = ?' => array('A'))和應用程序正常工作。我做錯了什麼?

回答

0

的 「語法」 是不同的,情況應該是這樣 array('account_type = ?', 'A')

0

以下應該工作。注意數組('A')簡單地變爲'A'。

class Person extends ActiveRecord\Model { 

static $has_many = array(
    array(
     'accounts', 
     'conditions' => array('account_type = ?' => 'A'), 
     'class_name' => 'Accounts', 
     'foreign_key' => 'idpersona' 
    ) 
); 

,如果您的查詢需要一系列輸入的,或者你有多個令牌替換你只需要在一個數組中的值。

退房這裏的例子:http://www.phpactiverecord.org/projects/main/wiki/Finders#conditions

+0

對不起,但這並不爲我工作。 –

0

自己的解決方案的數組:

class Person extends ActiveRecord\Model { 

static $has_many = array(
    array(
     'accounts', 
     'conditions' => "account_type = 'A'", 
     'class_name' => 'Accounts', 
     'foreign_key' => 'idpersona' 
    ) 
); 
+1

在這種特殊情況下,這很好,因爲'A'是一個文字,而不是用戶提供的變量。因爲activerecord會自動防止sql注入,所以使用數組而不是字符串只是一個好習慣 –