gpt4 book ai didi

Yii2 在保存时修剪所有内容

转载 作者:行者123 更新时间:2023-12-04 22:57:54 25 4
gpt4 key购买 nike

Yii2 框架。为通用模型创建通用行为的想法:

  • before Validate 修剪模型中的所有字段。
  • 如果是数组,则修剪数组中的所有值。
  • 我想知道为什么在 Yii2 核心中不存在这种可能性。或者我错了。我是吗?
  • 如果我修剪所有字段,我会遇到什么问题?
  • 最佳答案

    您可以创建行为并将其附加到您的模型上。

    1) 创建行为 TrimBehaviorcommon/components .

    <?php

    namespace common\components;

    use yii\db\ActiveRecord;
    use yii\base\Behavior;

    class TrimBehavior extends Behavior
    {

    public function events()
    {
    return [
    ActiveRecord::EVENT_BEFORE_VALIDATE => 'beforeValidate',
    ];
    }

    public function beforeValidate($event)
    {
    $attributes = $this->owner->attributes;
    foreach($attributes as $key => $value) { //For all model attributes
    $this->owner->$key = trim($this->owner->$key);
    }
    }
    }

    2)在您的模型中添加以下内容:
    //...
    use common\components\TrimBehavior;
    //...

    /**
    * Returns a list of behaviors that this component should behave as.
    *
    * @return array
    */
    public function behaviors()
    {
    return [
    [
    'class' => TrimBehavior::className(),
    ],
    ];
    }

    修剪属性取决于业务逻辑。如果你真的需要它,那没关系。

    关于Yii2 在保存时修剪所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745747/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com