Laravel 5.3使用包含问号的字符串进行更新

时间:2017-01-06 10:03:31

标签: php laravel eloquent

我目前正在尝试对数据库中的字段进行更新。这是一个简单的文本字段,如果字符串包含问号(?),我会遇到问题。

示例:

test ? test

正在发生的事情是它看到了'?'并认为它具有约束力。实际上它只是一个问题。我试过在它周围包裹\DB::raw(),但它不起作用。

之前是否有其他人遇到过此事?

1 个答案:

答案 0 :(得分:0)

我有一个非常相似的问题,在我的情况下,我试图保存一个包含'?'使用eloquent到数据库。我的解决方法是更换'?'与另一个角色,例如,' ^'保存时和阅读时相反。我利用eloquent mutators这样做,所以在我雄辩的模型中,我有类似的东西。

public function getFieldNameAttribute($value)
{
    return str_replace("^", "?", $value);
}

public function setFieldNameAttribute($value)
{
    $this->attributes['field_name'] = str_replace("?", "^", $value);
}

但是,您需要找到一个可以保证不会出现在您想要保存的值中的角色。