2010-10-10 6 views
0

J'essaie d'utiliser une requête avec un champ calculé dans une définition de relation Yii, mais tout ce que j'obtiens est une erreur.Requête d'enregistrement actif avec champ calculé

Voici ma requête: $ me = new CDbExpression ('CONCAT_WS (\', \ ', last_name, first_name) AS the_name');

Voici ma relation: 'auteur' => array (self :: belongs_to, 'Auteur', 'auth_id', 'select' => moi $),

Mon problème semble être que CDbExpression est attendre un paramètre mais la requête ne nécessite aucun paramètre!?!?!?

Je reçois une erreur 500 « trim() attend le paramètre 1 à être une chaîne, un tableau donné » (parce que je n'ai pas le paramètre!?!).

Si j'ajoute un faux paramètre: $ me = new CDbExpression ('CONCAT_WS (\', \ ', last_name, prénom) AS the_name', array ('test' => 'test')); Je reçois le même message d'erreur.

Qu'est-ce que je fais mal?

+0

Avez-vous résoudre ce problème? J'aimerais entendre votre réponse, si la mienne n'a pas aidé. Merci! – thaddeusmt

+0

Je vais devoir vérifier mon code. Je ne me souviens pas si je l'ai résolu ou fait quelque chose d'autre pour contourner mon problème. Je reviendrai vers toi! – Steve

+0

Désolé pour le très long délai pour revenir à vous. Non, je ne l'ai pas résolu. J'ai abandonné et j'ai décidé de montrer le nom de famille dans ma grille :( – Steve

Répondre

0

Il semble que la garniture() devient un tableau passé au lieu d'une chaîne. Le "param" auquel il est fait référence n'est pas le tableau "params" passé dans CDbExpression en tant que second paramètre, mais plutôt le paramètre unique passé à trim().

CDbExpression Peut-être retourner un tableau au lieu d'une chaîne à la clause « select » dans votre relation auteur? Je vérifierais que $ me est une chaîne, et non un tableau.

De même, où trim() est appelé? Cela pourrait aussi éclairer le sujet. Activez tous vos rapports d'erreurs pour obtenir le fichier et le numéro de ligne. Il y a quelques endroits dans le code DB où trim() est appelé.

0

Essayez de cette façon:

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