yii2 SluggableBehavior仅适用于emty段塞油田

yii2 SluggableBehavior仅适用于emty段塞油田,yii2,behavior,Yii2,Behavior,我正以这种方式使用SluggableBehavior public function behaviors() { return [ [ 'class' => SluggableBehavior::className(), 'attribute' => 'name', 'slugAttribute' => 'alias',

我正以这种方式使用SluggableBehavior

public function behaviors()
    {
        return [
            [
                'class' => SluggableBehavior::className(),
                'attribute' => 'name',
                'slugAttribute' => 'alias',
            ],
        ];
    }
如果表单中的字段“alias”为空,则效果很好。 如果表单提交时字段别名不为空,如何忽略此行为

提前谢谢

试试以下方法:

使用特定名称配置此行为:

return [
    'slug' => [
        'class' => SluggableBehavior::className(),
        'attribute' => 'name',
        'slugAttribute' => 'alias',
    ],
];
在控制器中,在验证之前从窗体加载属性

检查别名属性是否为空。 如果不是-分离此行为$this->detachBehavior'slug'。 验证模型。 在行为配置中添加'immutable'=>true


该行为的工作方式是,如果启用immutable时slugAttribute不是空的,则该属性不会更改。

Bizley!谢谢你的回答。这是一个有效的决定。