我已经将我的模型上的可移动行为配置为:
public function behaviors() {
return [
[
'class' => SluggableBehavior::className(),
'attribute' => 'title',
'ensureUnique' => true,
]
];
}我需要做:
我已经发现可携带的行为有一个属性“不可变”,但我没有看到操纵它的方法。
此外,如果给定值,我也看不到停止自动生成的方法。
有什么想法吗?
发布于 2018-04-19 10:02:04
对于这种不寻常的需求,您可能应该扩展SluggableBehavior并覆盖getValue()和isNewSlugNeeded()方法,以满足您的需求。
您还可以使用$value属性和/或更改模型的beforeValidate()中的某些行为设置:
public function beforeValidate() {
$this->getBahavior('my-behavior-name')->immutable = !$this->changeSlugCheckbox;
return parent::beforeValidate();
}但是自定义行为是更干净的解决方案。
https://stackoverflow.com/questions/49912179
复制相似问题