php - Laravel 忽略更改器(mutator)

标签 php laravel laravel-5

我正在使用 Laravel 的 Mutator 功能,并且我有以下 Mutator:

public function setFirstNameAttribute($value)
{
    $this->attributes['first_name'] = strtolower($value);
}

但是在某些情况下我需要忽略这个 Mutator。
有什么办法可以做到这一点

最佳答案

在模型中设置一个公共(public)变量,例如 $preventAttrSet

public $preventAttrSet = false;

public function setFirstNameAttribute($value) {
    if ($this->preventAttrSet) {
        // Ignore Mutator
        $this->attributes['first_name'] = $value;
    } else {
        $this->attributes['first_name'] = strtolower($value);
    }
}

现在,您可以根据自己的情况将公共(public)变量设置为 true 来忽略 Mutator
$user = new User;
$user->preventAttrSet = true;
$user->first_name = 'Sally';
echo $user->first_name;

关于php - Laravel 忽略更改器(mutator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43841752/

相关文章:

php - 计算一个日期范围内有多少天在另一个日期范围内

javascript - 如何在制定谷歌标签管理器后调用我的一些脚本?

javascript - Laravel 5.0 : How to save multiple inputs of rows in the same column of database?

php - 在 Laravel 迁移中更改列类型的最佳方法是什么?

php - Laravel 5 使用关系查询导致 "Call to a member function addEagerConstraints() on null"错误

php - 如何使用 mysqli_fetch_array() 两次?

php - 模型属性的翻译

php - 如何检查用户电子邮件是否已经存在

laravel - Tailwind Css - 在 View 滚动上扩展背景颜色

javascript - 如何使用 jQuery 获取重复表单中的字段值?