2010-10-10 65 views
0

我想在Yii關係定義中使用帶有計算字段的查詢,但我得到的只是錯誤。這個是我的查詢:$ me = new CDbExpression('CONCAT_WS(\',\',last_name,first_name)AS the_name');使用計算字段的活動記錄查詢

這裏是我的關係: '作家'=>陣列(自:: belongs_to的, '作者', 'AUTH_ID', '選擇'=> $箱),

我的問題似乎是CDbExpression是期望一個參數,但查詢不需要參數!?!?!?

我得到一個錯誤500「trim()期望參數1是字符串,數組給定」(因爲我沒有參數!?!)。如果我添加一個假參數:$ me = new CDbExpression('CONCAT_WS(\',\',last_name,first_name)AS the_name',array('test'=>'test')); 我收到相同的錯誤信息。

我在做什麼錯?

+0

你解決這個問題?如果我沒有幫助,我想聽聽你的回答。謝謝! – thaddeusmt 2010-11-07 04:43:35

+0

我必須檢查我的代碼。我不記得我是否解決了問題,還是採取了其他措施來解決我的問題。我會盡快給您回覆! – Steve 2010-11-22 23:48:01

+0

對不起,很長時間以來找不到你。不,我沒有解決它。我放棄了,決定在我的網格中顯示姓氏:( – Steve 2010-12-05 06:52:40

回答

0

聽起來像trim()正在傳遞一個數組而不是一個字符串。所提到的「param」不是作爲第二個參數傳入CDbExpression的「params」數組,而是傳遞給trim()的單個參數。

CDbExpression是否可以將數組而不是字符串返回給作者關係中的「select」子句?我會驗證$ me是一個字符串,而不是一個數組。

另外,trim()被調用的地方在哪裏?這也可以揭示這個問題。打開所有錯誤報告以獲取文件和行號。在調用trim()的DB代碼中有幾個地方。

0

試試這個方法:

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