如何在select查询中使用replace? (laravel 5.3)

时间:2017-01-19 09:25:11

标签: php laravel laravel-5.3

我的代码是这样的:

public function getList()
{
    $query =  self::join('master_datas','master_datas.id','=','users_banks.bank_id')
        ->orderBy('account_name')
        ->findAll([
                    'users_banks.*',
                    'master_datas.name',
                    DB::raw('replace(master_datas.information->logo, \'"\', "")')
            ]);
    return $query;
}

所以,我有实地信息。 json形式的字段信息如下:

{"logo": "icon-chelsea.png", "branch": "london", "owner": "chelsea"}

当我致电information->logo时,结果为:"icon-chelsea.png"

我想删除双引号。我尝试使用replace替换上面的代码。但它不起作用

我也添加了use Illuminate\Support\Facades\DB;。但是,它是相同的

有没有人可以帮助我?

1 个答案:

答案 0 :(得分:1)

对于Eloquent,您可以create a mutator存储logo字符串而不使用双引号:

public function setLogoAttribute($value)
{
    $this->attributes['logo'] = str_replace('"', '', $value);
}

如果您从其他地方获取数据,请在获取数据时使用an accessor

public function getLogoAttribute($value)
{
    return str_replace('"', '', $value);
}