2015-05-29 20:17:23 5261次浏览 2条回答 0 悬赏 0 金钱

新手求助!非安全属性加!后不再块赋值了,可以验证,但值为空,验证结果不对。

$scenarios['register'] = ['username', 'email', '!password_hash', '!password_hash_repeat'];
$user = new User(['scenario' => 'register']);
$user->attributes = Yii::$app->request->post('User');
$user->validate();

请问一下安全属性和非安全属性怎么用?

  • 回答于 2015-05-30 10:09 举报

    你这段代码和安全属性及非安全属性有何关系?

    1 条回复
    回复于 2015-05-30 13:35 回复

    看了文档和源代码,不明白安全属性和非安全属性有什么用途?文档说设为非安全属性后验证不块赋值,但是这个属性没赋值,打印为空,验证时一直通不过?

  • 回答于 2015-05-31 14:36 举报

    在对model字段批量赋值的时候,非安全属性就不会自动赋值。类似$user->load(Yii::$app->request->post, '')这样的操作也是这样,可以在scenario中配置安全属性,比如给新增操作建一个createScenario,更新操作建一个updateScenario,部分不希望或者不允许修改的字段,就可以在updateScenario中排除,后续修改model时,就可以直接批量读取参数,会自动把非安全属性排除,以免修改了不希望修改的字段,也不用担心请求中传了多余的字段

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
luyun210
实习生

luyun210

注册时间:2015-05-29
最后登录:2015-07-21
在线时长:0小时55分
  • 粉丝0
  • 金钱5
  • 威望0
  • 积分5

热门问题