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

以下应该工作。注意 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 回答
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 回答