2010-02-08 39 views
1

我有一個CActiveRecord模型,我需要在該模型中更改安全屬性列表。 我已經定義了safeAttributes方法我的模型中,如下所示:如何在yii中更改模型安全屬性

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

問題是「生物」是不是我的安全屬性分配正在考慮中。我試圖在模型中轉儲模型safeAttributeNames屬性,我得到的東西與safeAttributes應該返回的完全不同。

我以正確的方式做這件事嗎?

歡呼聲, Firas

+0

如果'bio'沒有被考慮在安全屬性分配中,你可以直接刪除它,對嗎? – Darmen 2010-02-08 13:56:24

回答

3

假設你正在使用Yii 1.0.x的話就是這樣做的正確方法。

如果您使用的是Yii 1.1.x,那麼它已被更改。再讀一下documentation

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

另外,如果你想定義一個只在註冊期間是_safe_的屬性,你可以添加這個規則array('some_field','safe','on'=>'register')'然後實例化模型(假設它是用戶模型)像這樣'$ model = new User('register');' – 2013-02-15 01:23:48