2010-02-08 2 views
1

J'ai un modèle CActiveRecord, et j'ai besoin de changer la liste des attributs de sécurité dans ce modèle. J'ai défini la méthode safeAttributes dans mon modèle, comme ce qui suit:comment modifier un modèle attributs de sécurité dans yii

public function safeAttributes() 
{ 
    return array(
    'name, bio', 
    ); 
} 

le problème est « bio » n'est pas considéré dans mon assign attribut sûr. J'ai essayé de vider l'attribut safeAttributeNames du modèle dans mon modèle, et ce que j'ai obtenu était complètement différent de ce que safeAttributes devrait renvoyer.

Est-ce que je fais cela de la bonne façon?

acclamations, Firas

+0

Si «bio» n'est pas pris en compte dans l'attribution d'attribut de sécurité, vous pouvez simplement le supprimer, n'est-ce pas? – Darmen

Répondre

3

En supposant que vous utilisez 1.0.x Yii alors c'est la bonne façon de le faire.

Si vous utilisez Yii 1.1.x, alors c'est changé. Avoir une autre lecture du documentation.

public function rules() 
{ 
    return array(
     array('username, password', 'required'), 
     array('rememberMe', 'boolean'), 
     array('password', 'authenticate'), 
     array('something', 'safe'), 
     array('someOtherThing', 'unsafe'), 
    ); 
} 
+0

Aussi, si vous voulez définir un attribut qui est _safe_ seulement pendant l'enregistrement, vous pouvez ajouter cette règle 'array ('some_field', 'safe', 'on' => 'register')', puis instancier le modèle (à condition que Modèle utilisateur) comme ceci '$ model = new User ('register');' –

Questions connexes