I'm trying to convert a json column name with path 'foo->bar' to be compatible with mysql/postgresql using Laravel's wrapJsonSelector() method.
How can I access this method from the query builder calling getGrammar throws error:
Method Illuminate\Database\Query\Grammars\MySqlGrammar::isJsonSelector does not exist.
Eg
$query->where(function (Builder $query) use ($searchColumn): Builder {
if ($query->getGrammar()->isJsonSelector($searchColumn)) {
$searchColumn = $query->getGrammar()->wrapJsonSelector($searchColumn);
}
// ...
})
isJsonSelectorandwrapJsonSelectorare protected methods, which means you cannot access them from outside the class. However, you don’t need to invoke either of them directly in the first place. You can just use thewrapmethod, which will invokewrapJsonSelectorin the case you want to cover here.