带计算字段的活动记录查询

时间:2010-10-10 15:49:33

标签: activerecord relationship yii

我正在尝试在Yii关系定义中使用带有计算字段的查询,但我得到的只是错误。

这是我的查询:$ me = new CDbExpression('CONCAT_WS(\',\',last_name,first_name)AS the_name');

这是我的关系:'author'=>数组(self :: BELONGS_TO,'作者','auth_id','select'=> $ me),

我的问题似乎是CDbExpression期待一个参数,但查询不需要参数!?!?!?

我收到错误500“trim()期望参数1为字符串,给定数组”(因为我没有参数!?!)。

如果我添加一个假参数:$ me = new CDbExpression('CONCAT_WS(\',\',last_name,first_name)AS the_name',array('test'=>'test')); 我收到相同的错误消息。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

听起来像trim()传递数组而不是字符串。引用的“参数”不是作为第二个参数传递给CDbExpression的“params”数组,而是传递给trim()的单个参数。

CDbExpression可以将数组而不是字符串返回到作者关系中的“select”子句吗?我会验证$ me是一个字符串,而不是一个数组。

此外,调用trim()的位置是什么?这也可能会对这个问题有所启发。打开所有错误报告以获取文件和行号。 DB代码中有几个地方调用了trim()。

答案 1 :(得分:0)

尝试这种方式:

'author' => array(self::BELONGS_TO, 'Author', 'auth_id', 'select'=>array($me)),