Я пытаюсь создать браузер для видео на своей странице, используя Yii2 и PostgreSQL, и у меня есть справочный код для MySQL. Я понимаю, что функция "andWhere" генерирует SQL-запрос с учетом кода MySQL.
Запрос, который я пытаюсь преобразовать в файл php:
SELECT title
FROM video
WHERE to_tsvector(title || ' ' || tags) @@ to_tsquery(:keyword)
И эталонный код для MySQL:
return $this->andWhere("MATCH(title, description, tags)
AGAINST (:keyword)", ['keyword' => $keyword]);
Пожалуйста, помогите, я застрял.
🤔 А знаете ли вы, что...
PHP имеет множество фреймворков, упрощающих разработку веб-приложений, таких как Laravel и Symfony.
ActiveRecord позволяет вам писать запросы, не беспокоясь о поддержке базы данных. Вы даже можете изменить ядро базы данных, используемое вашим приложением, без необходимости изменять ваши запросы.
Этот код должен работать для вашего варианта использования
$this->where(['or',
['like', 'title', $keyword],
['like', 'description', $keyword],
['like', 'tags', $keyword]
]);
Я не уверен, почему вы используете andWhere()
в своем вопросе, если у вас уже есть where()
выше в вашем методе, используйте andWhere
.
В документации Yii2 есть хорошая страница о том, как указывать условия запроса.