Невозможно связать параметры в необработанном запросе Laravel - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь привязать переменные к моему необработанному запросу,

$query = "SELECT 1 AS rank, 'CATEGORY' AS type, category_id AS id, name AS name
          FROM category_translations
          JOIN categories ON categories.id = category_translations.category_id
          WHERE name LIKE '%?%'";

$results = DB::select($query, ['ger']);

Но я не могу этого сделать.Я попытался связать именованные параметры, а также использовать DB::raw внутри DB::select без какого-либо успеха.

Что я здесь не так делаю?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Вам нужно добавить % в значение привязки, а не в запрос (если вы не concat() значения) ...

$query = "SELECT 1 AS rank, 'CATEGORY' AS type, category_id AS id, name AS name
          FROM category_translations
          JOIN categories ON categories.id = category_translations.category_id
          WHERE name LIKE ?";

$results = DB::select($query, ['%ger%']);
0 голосов
/ 08 декабря 2018

попробуй использовать вот так

$query = "SELECT 1 AS rank, 'CATEGORY' AS type, category_id AS id, name AS name
          FROM category_translations
          JOIN categories ON categories.id = category_translations.category_id
          WHERE name LIKE '% :nameSearch %'";

$results = DB::select(DB::raw($query), ['nameSearch' => 'ger']);

второй способ используй так

$searchText = "ger";
$results = DB::select(DB::raw($query), ['nameSearch' => "%".$searchText."%"]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...