首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2 -可携性行为

Yii2 -可携性行为
EN

Stack Overflow用户
提问于 2018-04-19 03:19:20
回答 1查看 346关注 0票数 2

我已经将我的模型上的可移动行为配置为:

代码语言:javascript
复制
public function behaviors() {
        return [
          [
              'class' => SluggableBehavior::className(),
              'attribute' => 'title',
              'ensureUnique' => true,
          ]
        ];
    }

我需要做:

  • 如果用户填充了一个名为"URL“的表单字段,则应该使用它来代替自动生成的段塞。
  • 如果用户更改标题,他们将标记一个复选框,如果他们想要更新弹格。

我已经发现可携带的行为有一个属性“不可变”,但我没有看到操纵它的方法。

此外,如果给定值,我也看不到停止自动生成的方法。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-19 10:02:04

对于这种不寻常的需求,您可能应该扩展SluggableBehavior并覆盖getValue()isNewSlugNeeded()方法,以满足您的需求。

您还可以使用$value属性和/或更改模型的beforeValidate()中的某些行为设置:

代码语言:javascript
复制
public function beforeValidate() {
    $this->getBahavior('my-behavior-name')->immutable = !$this->changeSlugCheckbox;

    return parent::beforeValidate();
}

但是自定义行为是更干净的解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49912179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档