Спокойной ночи всем!
TypeError Аргумент 2 передан CodeIgniter\Database\BaseBuilder::like() должен иметь тип string, null задано, вызвано D:\xampp\htdocs\lordeCI\app\Controllers\AutocompleteSearch.php онлайн 31
Codeigniter выдает эту ошибку для фрагмента кода ниже, «titulo» и «post_id» — это имена столбцов таблицы, называемой «posts»:
public function ajaxSearch()
{
helper(['form', 'url']);
$data = [];
$db = \Config\Database::connect();
$builder = $db->table('posts');
$query = $builder->like('titulo', $this->request->getVar('q')) //this is line 31
->select('post_id, titulo as text')
->limit(10)->get();
$data = $query->getResult();
echo json_encode($data);
}
Кроме того, некоторые изображения не загружаются должным образом, браузер выдает код состояния: 200, хотя тип содержимого - «текст/html», я проверил путь к изображению, и он правильный. Однако сообщение ниже появилось в инструментах разработчика, вкладка сети.
"DevTools не удалось загрузить SourceMap: не удалось загрузить содержимое для chrome-extension://pmncamalnkoafdfdmojmhanhngjaakcb/browser-polyfill.js.map: ошибка http: код состояния 404, net::ERR_UNKNOWN_URL_SCHEME"






Вы получаете: Вы передаете пустое значение в параметр q, исключение происходит, потому что это похоже на вызов: $query = $builder->like('titulo', null), этого не может произойти, только строки принимаются в качестве второго параметра для метода like.
Чтобы решить эту проблему, проверьте свой параметр перед его использованием:
$titulo = '';
if ( ! empty( $titulo ) ) {
$titulo = $this->request->getVar('q');
}
$query = $builder->like('titulo', $titulo);
Лучший способ сделать это — Проверка формы.
Вы должны проверить, как вы возвращаете изображения клиенту. Если вы вернете изображение непосредственно из echo, у вас будет такая ошибка.
Лучший способ - решить эту проблему на уровне вашего сервера приложений.
Не такая уж большая проблема, это ни в чем не помешает вашему приложению. Взгляните на этот вопрос StackOverflow.