php 如何从查询生成器访问语法?

plupiseo  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(92)

bounty还有6天到期。回答此问题可获得+300声望奖励。John Magnolia希望引起更多的注意这个问题。

我正在尝试使用Laravel的wrapJsonString()方法将路径为'foo->bar'的JSON列名转换为与mysql/postgresql兼容。
我如何从查询构建器调用getGrammar来访问这个方法抛出错误:
您访问的页面不存在。返回首页
Eg

$query->where(function (Builder $query) use ($searchColumn): Builder {
    if ($query->getGrammar()->isJsonSelector($searchColumn)) {
        $searchColumn = $query->getGrammar()->wrapJsonSelector($searchColumn);
    }
    // ...
})
csbfibhn

csbfibhn1#

DB::table('your_table')
->selectRaw('your_json_column->"$.foo->bar" as modified_column')
->get();

selectRaw方法允许您在查询中编写原始SQL表达式。

h7appiyu

h7appiyu2#

isJsonSelectorwrapJsonSelector是受保护的方法,这意味着您不能从类外部访问它们。但是,您不需要首先直接调用它们。您可以只使用wrap方法,它将在您想要在这里介绍的情况下调用wrapJsonSelector

相关问题