Запрос активной записи с вычисляемым полем - PullRequest
0 голосов
/ 10 октября 2010

Я пытаюсь использовать запрос с вычисляемым полем в определении отношения Yii, но все, что я получаю, это ошибки.

Вот мой запрос: $ me = new CDbExpression ('CONCAT_WS (\', \', last_name, first_name) AS the_name');

Вот мое отношение: 'author' => array (self :: BELONGS_TO, 'Author', 'auth_id', 'select' => $ me),

Кажется, моя проблема в том, что CDbExpression ожидает параметр, но запрос не требует параметров!?!?!?

Я получаю сообщение об ошибке 500 "trim () ожидает параметр 1быть строкой, массив задан "(потому что у меня нет параметра!?!).

Если я добавлю поддельный параметр: $ me = new CDbExpression ('CONCAT_WS (\', \ ', last_name, first_name)AS the_name ', массив (' test '=>' test '));Я получаю то же сообщение об ошибке.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Попробуйте так:

'author' => array(self::BELONGS_TO, 'Author', 'auth_id', 'select'=>array($me)),
0 голосов
/ 11 октября 2010

Похоже, что trim () получает массив вместо строки.Упомянутый «param» - это не массив «params», переданный в CDbExpression в качестве второго параметра, а скорее единственный параметр, переданный в trim ().

Может ли CDbExpression возвращать массив вместо строкик предложению "выбрать" в отношении вашего автора?Я бы подтвердил, что $ me - это строка, а не массив.

Кроме того, где вызывается trim ()?Это также может пролить свет на эту тему.Включите все ваши сообщения об ошибках, чтобы получить файл и номер строки.В коде БД есть несколько мест, где вызывается trim ().

...