У меня есть следующие таблицы:Yii: HAS_MANY поиск
user (id, cv_personal_data_id),
cv_personal_data (id, firstname, surname, gender, address, ...),
cv_laboral_exp (id, user_id, position, seniority,...),
cv_study (id, user_id, name, institution, average, ...),
cv_language (id, user_id, language_name, writing_level, ...)
В моей модели User я определил следующие соотношения:
public function relations()
{
return array(
'cvLaboralExps' => array(self::HAS_MANY, 'CvLaboralExp', 'user_id'),
'cvLanguages' => array(self::HAS_MANY, 'CvLanguage', 'user_id'),
'cvStudies' => array(self::HAS_MANY, 'CvStudy', 'user_id'),
'cvPersonalData' => array(self::BELONGS_TO, 'CvPersonalData', 'cv_personal_data_id'),
}
Проблема: вход в качестве компании, мне нужно для отображения CGridView, перечисляющего всех пользователей, и возможности поиска по любому из полей связанных таблиц, таких как «позиция» (из cv_laboral_exp), «language_name» (из cv_languages) и т. д. Я не могу найти решение для поиска полей, которые исходят из отношения HAS_MANY. Я попробовал, добавив в методе поиска() из пользовательского класса «с» заявление на $ критериев, в попытке поиска позицию опыта пользователя Лабораль, но без успеха:
$criteria->compare('cvLaboralExps.position',$this->cvLaboralExps,true);
$criteria->with = array('cvLaboralExps'=>array('select'=>'cvLaboralExps.position','together'=>true));
Как вы видите, существует много отношений, которые формируют CV пользователя. Я был бы очень благодарен, если бы кто-нибудь мог помочь мне решить эту проблему, даже если это подразумевает изменение структуры базы данных/модели.
has_many означает много связанных записей, поэтому прежде всего, как вы планируете отображать записи has_many? как выпадающие списки в каждом столбце? или что-то еще, может быть? –
Я мог отображать каждую запись пользователя в строке, а затем применять функцию implode к массиву связанных записей, поэтому пользователь user1 будет иметь «Developer, Tester, Designer» в столбце позиций. Моя основная проблема заключается в том, как искать эти записи в такой ситуации. – Vika
ok..it должно быть возможно, давайте c –