Я использую CListView для отображения моих данных на странице. У меня есть текстовое поле для поиска ключевых слов в запросе.Yii CListView Поиск с подзапросами
В моем запросе, где я создаю свой CActiveDataProvider У меня есть некоторые подзапросы. Пример:
$criteria = new CDbCriteria;
$criteria->select = array('
Lessons.id,
Lessons.name,
(SELECT
COALESCE(CONCAT(u.first_name, " ", u.last_name), last_name, first_name)
FROM
users AS u
WHERE
u.user_token = Lessons.instructor_id
) as instructor_name
');
В моей модели для вышеуказанного запроса есть переменная класса с именем $ instructionor_name.
Когда я ввожу данные в текстовое поле, я запускаю этот фрагмент кода, чтобы присоединиться к другой таблице для поиска.
if (!empty($query)) {
$criteria->with = array('packages');
$criteria->compare('packages.contents', $query, true);
$criteria->together = true;
}
Результаты при выполнении поискового запроса не возвращают данные инструктора из подзапроса.
Любые идеи о том, что здесь происходит, чтобы предотвратить загрузку данных моего подзапроса? Заранее спасибо.
То, что я, кажется, найти то, когда я добавить значение к с частью поиска критерии. , например. '$ criteria-> with = array ('инструктор');' Выполняемый мной SQL-запрос не учитывает исходное значение выбора. Таким образом, стирание подзапроса для использования Yii по умолчанию. – Shawn
Выполняя это так, вам не нужен подзапрос, так как столбцы соединены в него, а затем формула используется для вычисления поля имя_пользователя. – PrplHaz4