基于Yii场景的安全属性

时间:2013-06-13 19:55:59

标签: php yii

我有一个包含以下规则的产品型号:

...
array('normal_price, company_id, purchase_price', 'safe', 'on' => 'adminList'),
array('normal_price, company_id', 'safe', 'on' => 'list'),
...

我调用以下函数:

$product->scenario = 'list';
$product->safeAttributeNames;

上面的代码只能返回['normal_price, company_id'],但我也会得到purchase_price。即使我删除adminList方案的第一条规则。

我需要我指定的属性列表。 我的代码可能有什么问题?

2 个答案:

答案 0 :(得分:1)

我刚刚发现,我有一个购买规则的长度规则,没有方案。当我评论出所有其他规则时,它就是我想要的。

说明

要仅获取“安全”属性,您不应该在该方案中为这些属性设置任何其他规则。

我的解决方案是将默认方案设置为每个规则,如:

array('id', 'require', 'on' => 'insert, update')

答案 1 :(得分:0)

尝试使用:

$product->setScenario('list');