我有一个包含以下规则的产品型号:
...
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
方案的第一条规则。
我需要我指定的属性列表。 我的代码可能有什么问题?
答案 0 :(得分:1)
我刚刚发现,我有一个购买规则的长度规则,没有方案。当我评论出所有其他规则时,它就是我想要的。
说明
要仅获取“安全”属性,您不应该在该方案中为这些属性设置任何其他规则。
我的解决方案是将默认方案设置为每个规则,如:
array('id', 'require', 'on' => 'insert, update')
答案 1 :(得分:0)
尝试使用:
$product->setScenario('list');