Ошибка типа панели поиска

Спокойной ночи всем!

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"

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

За исключением

Вы получаете: Вы передаете пустое значение в параметр q, исключение происходит, потому что это похоже на вызов: $query = $builder->like('titulo', null), этого не может произойти, только строки принимаются в качестве второго параметра для метода like.

Чтобы решить эту проблему, проверьте свой параметр перед его использованием:

$titulo = '';
if ( ! empty( $titulo ) ) {
    $titulo = $this->request->getVar('q');
}
$query = $builder->like('titulo', $titulo);

Лучший способ сделать это — Проверка формы.

Проблема с изображениями

Вы должны проверить, как вы возвращаете изображения клиенту. Если вы вернете изображение непосредственно из echo, у вас будет такая ошибка.

Лучший способ - решить эту проблему на уровне вашего сервера приложений.

Ошибка исходной карты

Не такая уж большая проблема, это ни в чем не помешает вашему приложению. Взгляните на этот вопрос StackOverflow.

Другие вопросы по теме