加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel的Global Mutator

发布时间:2020-12-14 19:56:35 所属栏目:大数据 来源:网络整理
导读:我有许多不同的位置插入和更新我的数据库的方式,我希望能够在插入数据库之前修剪()用户输入.我知道在模型中我可以做类似下面的事情,但我不想为每个领域做这件事.有没有办法设置适用于所有字段的通用setter? 例: public function setSomFieldAttribute($val
我有许多不同的位置插入和更新我的数据库的方式,我希望能够在插入数据库之前修剪()用户输入.我知道在模型中我可以做类似下面的事情,但我不想为每个领域做这件事.有没有办法设置适用于所有字段的通用setter?

例:

public function setSomFieldAttribute($value) {
     return $this->attributes['some_field'] = trim($value);
}
您可能会覆盖这些方法:
<?php

class Post extends Eloquent {

    protected function getAttributeValue($key)
    {
        $value = parent::getAttributeValue($key);

        return is_string($value) ? trim($value) : $value;
    }

    public function setAttribute($key,$value)
    {
       parent::setAttribute($key,$value);

        if (is_string($value))
        {
            $this->attributes[$key] = trim($value);
        }
    }
}

你永远不应该再获得未经修改的价值.

编辑:

在这里测试过,我没有空格:

Route::any('test',['as' => 'test',function()
{
    $d = Post::find(2);

    $d->title_en = "  Markdown Example  ";

    dd($d);
}]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读