使用Yii框架我有一个我自己无法解决的问题。
我如何很好地检查对模型某些属性的访问权限?
上下文:
email
,age
,favorite color
等)都可以修改某些属性,有些属性只能由具有某些特定角色的用户进行编辑({ {1}} - 可由主持人或管理员更改is_banned
- 只能由管理员等更改。)我已经做过的事情: 目前我只看到一种可能的方法来完成这项任务:
balance
有没有更好的方法来解决这样的任务?感谢。
答案 0 :(得分:0)
考虑使用模型方案(http://www.yiiframework.com/wiki/266/understanding-scenarios/):
为您的模型规则添加方案条件:
public function rules() { return array( array('balance', 'integer', 'on' => 'admin'), ); }
在控制器中设置模型方案:
if ($this->user->checkAccess('admin')) { $model->scenario = 'admin'; }
现在,仅保存场景可用的属性。 还要考虑在搜索模型中使用场景。