Проблема с оператором AND по Eloquent Необработанный запрос MySQL JSON

В дополнение к существующим ответам вы также можете «переопределить» методы расширения, изменив сигнатуру метода:

1.) Используйте более конкретный тип

Это может быть только конечно, если целевой тип более конкретный, чем тип существующего метода расширения. Кроме того, это может потребоваться для всех применимых типов.

// "override" the default Linq method by using a more specific type
public static bool Any<TSource>(this List<TSource> source)
{
    return Enumerable.Any(source);
}

// this will call YOUR extension method
new List<T>().Any();

2.) Добавить фиктивный параметр

Не так красиво. Кроме того, для этого потребуется изменить существующие вызовы, чтобы включить фиктивный аргумент.

// this will be called instead of the default Linq method when "override" is specified
public static bool Any<TSource>(this IEnumerable<TSource> source, bool @override = true)
{
    return source.Any();
}

// this will call YOUR extension method
new List<T>().Any(true);
0
задан finiteloop 13 July 2018 в 06:04
поделиться

2 ответа

Я понял это. Мой синтаксис должен выглядеть следующим образом:

$users = User::whereRaw('lower(info_json->"$.full_name") like lower(?)', ["%{$user_name}%"])->where('user_type', '=', 'admin')->get();

Спасибо тем, кто помог с этим! Как и многие проблемы с синтаксисом / кодированием, небольшое перерывы в этом помогли мне разобраться с этим довольно быстро, когда я вернулся к нему.

0
ответ дан finiteloop 17 August 2018 в 13:38
поделиться

Я думаю, что вы должны сделать что-то вроде

$users = User::where(DB::raw('lower(info_json->"$.full_name")', 'like', DB::raw('lower(%{$user_name}%)'))
->where('user_type', '=', 'admin')

Вероятно, у меня есть ошибка sintax, но основная идея - использовать DB::raw, чтобы помочь вам с вашим запросом.

1
ответ дан KuKeC 17 August 2018 в 13:38
поделиться
  • 1
    да, ваш синтаксис отключен. Думаю, я понял это. Я добавлю ответ на этот вопрос, чтобы кто-то приносил пользу в будущем. – finiteloop 14 July 2018 в 22:52
Другие вопросы по тегам:

Похожие вопросы: