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

问题描述 投票:0回答:1

有没有办法从查询生成器访问

isJsonSelector
方法?

我正在尝试使用Laravel的wrapJsonSelector方法将路径为'foo->bar'的json列名转换为与mysql/mariadb兼容。

例如

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

但是抛出错误

方法 Illuminate\Database\Query\Grammars\MySqlGrammar::isJsonSelector 不存在。

php laravel laravel-query-builder
1个回答
0
投票
DB::table('your_table')
->selectRaw('your_json_column->"$.foo->bar" as modified_column')
->get();

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

© www.soinside.com 2019 - 2024. All rights reserved.