Laravel this query:
Laravel这个查询:
DB::table('registries')->where('metas->name', $this->registry_name)->select(['metas->date'])->first();
Returning data like this:
返回这样的数据:
{#1463 ▼
+"`metas`->'$."date"'": ""2017-01-02""
}
Because of this problem (2x double quotes) there is problem with DataTables package, as result converted to JSON still have 4 double quotes.
由于这个问题(2x双引号),DataTables包存在问题,因为转换为JSON的结果仍然有4个双引号。
If I remove select(['metas->date'])
everything fine then...
如果我删除select(['metas-> date'])一切都很好......
2 个解决方案
#1
0
You can't do that.
你不能这样做。
you need something like
你需要类似的东西
DB::table('registries')->where('metas->name', $this->registry_name)->select(['metas'])->first()->date;
#2
0
To solve this problem we need to select column with inline path operator ->>
like this:
要解决这个问题,我们需要选择带有内联路径运算符的列 - >>像这样:
DB::table('registries')->where('metas->name', $this->registry_name)->select([DB::raw('metas->>"$.date" AS date')])->first();
#1
0
You can't do that.
你不能这样做。
you need something like
你需要类似的东西
DB::table('registries')->where('metas->name', $this->registry_name)->select(['metas'])->first()->date;
#2
0
To solve this problem we need to select column with inline path operator ->>
like this:
要解决这个问题,我们需要选择带有内联路径运算符的列 - >>像这样:
DB::table('registries')->where('metas->name', $this->registry_name)->select([DB::raw('metas->>"$.date" AS date')])->first();