【问题标题】:Yii scenario based safe attributesYii 基于场景的安全属性
【发布时间】:2013-06-10 08:34:23
【问题描述】:

我有一个具有以下规则的产品模型:

...
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 场景的第一条规则。

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

【问题讨论】:

    标签: php yii


    【解决方案1】:

    我刚刚发现,我有一个没有场景的购买规则的长度规则。当我注释掉所有其他规则时,它可以达到我想要的效果。

    说明:

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

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

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

    【讨论】:

      【解决方案2】:

      试试这个:

      $product->setScenario('list');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-31
        • 1970-01-01
        • 1970-01-01
        • 2021-12-09
        • 2010-09-17
        相关资源
        最近更新 更多