0

すでに存在するデータベースでActiveRecordを使用しています。account_type ='A'のペルソナに関連するすべてのアカウントを取得する必要があるため、次のようになります。

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'))、アプリは正常に動作します。私が間違っていることは何ですか?

4

3 に答える 3

1

「構文」が異なります。条件は次のような配列にする必要があります array('account_type = ?', 'A')

于 2012-12-26T14:43:44.797 に答える
0

私自身の解決策:

class Person extends ActiveRecord\Model {

static $has_many = array(
    array(
        'accounts',
        'conditions' => "account_type = 'A'",
        'class_name' => 'Accounts',
        'foreign_key' => 'idpersona'
    )
);
于 2012-12-26T15:09:07.660 に答える
0

以下はうまくいくはずです。array('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

于 2012-12-26T13:37:10.510 に答える