Выборка записей с одной таблицы по условию с друго
Добрый день. Расширяю компонент modExtra и столкнулся с Поиском по таблицам, а именно поиск по второй таблице, а вывод информации с первой (двухтабличный запрос(или как-то так)). Сейчас поиск работает по одной таблице(ту которую мы смотрим) но по мимо этого в некоторых таблицах мне нужен поиск с другой таблицы.
Вот SQL запрос который поидее должен выводить такой поиск
Вот SQL запрос который поидее должен выводить такой поиск
SELECT *
FROM `modx_driverlicense_licenses`
WHERE `names` = ( SELECT `id`
FROM `modx_driverlicense_notface`
WHERE `modx_driverlicense_notface`.`name` LIKE '%Коломи%' )
Вот php кодclass DriverLicenseLicensesGetListProcessor extends modObjectGetListProcessor {
public $objectType = 'DriverLicenseLicenses';
public $classKey = 'DriverLicenseLicenses';
public $defaultSortField = 'id';
public $defaultSortDirection = 'DESC';
public function prepareQueryBeforeCount(xPDOQuery $c) {
$query = $this->getProperty('query');
$c->where(array(
'deleted' => 0,
));
if (!empty($query)) {
/*$c->andCondition(array(
'number:LIKE' => '%'.$query.'%',
'names:OR' => "SELECT 'id'
FROM `modx_driverlicense_notface`
WHERE `modx_driverlicense_notface`.`name` LIKE '%".$query."%'"
));*/
// Нужно вставить название своего объекта второй таблицы
$q = $this->$modx->newQuery('DriverLicenseNotface');
$q->select('id');
$q->where(array('name:LIKE' => '%'.$query.'%'));
$ids = array();
while($row = $q->fetch(PDO::FETCH_ASSOC)) {
$ids[] = $row['id'];
}
if (!empty($ids)) {
$c->where(array(
'name:IN' => $ids
));
}
}
return $c;
}
}
Выдает ошибку Cannot access empty property in line 28
Комментарии: 1
Вам lefftJoin нужен тут, а не newQuery по всей видимости
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.