Модель Laravel 5.8, в которой Json содержит только точные совпадения - PullRequest
0 голосов
/ 08 ноября 2019

Laravel: 5.8

В настоящее время у меня есть некоторые проблемы с моим whereJsonContains запросом. Я пытаюсь найти объект, и если строка является точным или частичным совпадением, я получаю результаты, в настоящий момент я получаю только точные совпадения.

$quote->whereJsonContains( 'quotes->current' , [ 'quote' => $request->input( 'quote' ) ] );

Я удалил ненужный код какэто часть поискового фильтра. Остальное работает отлично, но я не могу найти что-либо в документации об этом или каких-либо рабочих примерах.

Пример объекта json в БД:

{
    "current": [
      {
        "quote": "This is a test quote 1",
        "page": "7",
        "who": "Nancy Harris",
        "explanation": "This is a text explanation about quote 1",
        "tags": "test1, testing, test",
        "created": "2019-10-30T00:38:20.414818Z",
        "updated": "2019-10-30T00:38:20.414826Z"
      },
      {
        "quote": "This is a test quote 2",
        "page": "60",
        "who": "Agnes Bates",
        "explanation": "This is a text explanation about quote 2",
        "tags": "test1, testing, test",
        "created": "2019-10-30T00:38:20.414818Z",
        "updated": "2019-10-30T00:38:20.414826Z"
      },
      {
        "quote": "This is a test quote 3",
        "page": "11",
        "who": "Wayne Griffin",
        "explanation": "This is a text explanation about quote 3",
        "tags": "test1, testing, test",
        "created": "2019-10-30T00:38:20.414818Z",
        "updated": "2019-10-30T00:38:20.414826Z"
      }
    ]
  }

1 Ответ

0 голосов
/ 08 ноября 2019

Попробуйте расширить до ваших данных qoute.

$quote->whereJsonContains( 'quotes->current->qoute' ,'like', request('quote'));
...