Laravel+MySQL 使用->运算符取 JSON 字段被引号包围应该怎么优雅的解决?
如题:
Channel::query()
->select(['id', 'name', 'father', 'sort', 'type', 'status', 'extra->cover as cover'])
取出的cover
被"
包围 类似于"http://www.hao123.com"
MySQL 有 JSON_UNQUOTE()
请问在Eloquent中如何优雅解决?
(看了几遍文档好像没有提到这一点,如果有疏漏请恕我眼拙)
可以尝试使用 Eloquent: Mutators,大概代码:
@lym125
谢谢,
我的问题描述有问题
我的这个问题实际上应该是
Builder
层面的,我不想使用
ORM
的方法 是为了避免一次取出全部extra
字段的内容,看起来应该是没有特别好的解决办法了 最后我选择了在
collection
上使用each
方法强行替换掉了引号 :joy:https://learnku.com/docs/laravel/5.8/queries#raw-e...
@fripig 你是指让我用原生语句还是?
我是想问
builder
或其他层面有没有类似->unquote('cover')
这样的方法可以处理引号,而这个方法存在我却不知道,就比如我之前不知道分组查询可以使用where+闭包
,不过原生语句的确是个方法,谢谢