Запрос Active Record с вычисляемым полем

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

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

Вот мое отношение: 'автор' => массив (self::BELONGS_TO, 'Автор', 'auth_id', 'выбрать' => $me),

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

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

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

Что я делаю неправильно?


person Steve    schedule 10.10.2010    source источник
comment
Вы решили эту проблему? Хотелось бы услышать ваш ответ, если мой не помог. Спасибо!   -  person thaddeusmt    schedule 07.11.2010
comment
Я должен проверить свой код. Я не помню, решил ли я это или сделал что-то еще, чтобы обойти мою проблему. Я вернусь к вам!   -  person Steve    schedule 23.11.2010
comment
Извините за действительно долгую задержку с ответом на вас. Нет, я не решал. Я сдался и решил просто показать фамилию в своей сетке :(   -  person Steve    schedule 05.12.2010


Ответы (2)


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

Может ли CDbExpression возвращать массив вместо строки в предложение «выбрать» в вашем отношении к автору? Я бы проверил, что $me ​​— это строка, а не массив.

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

person thaddeusmt    schedule 10.10.2010

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

'author' => array(self::BELONGS_TO, 'Author', 'auth_id', 'select'=>array($me)),
person rinat.io    schedule 24.02.2012