<сильный>1. Таблица meeting
Название модели CoreMeeting
Поля id, title, start time, created_by
Отношение:
'MeetingParticipants' => array(self::HAS_MANY, 'MeetingParticipants', 'meeting_id'),
<сильный>2. Таблица core_meeting_participant
Название модели meeting_participant
Поля id, meeting_id, participant_id, group_id
Отношение:
'meeting' => array(self::BELONGS_TO, 'CoreMeeting', 'meeting_id'),
'group' => array(self::BELONGS_TO, 'MeetingGroup', 'group_id'),
<сильный>3. Таблица core_meeting_group
Название модели MeetingGroup
Поля id, group_name
Мой фильтр поиска в модели встречи:
public function search()
{
$group=filter_var($_REQUEST['group'], FILTER_SANITIZE_STRING);//contain group name
$criteria=new CDbCriteria;
$user_id = Yii::app()->user->id;
$criteria->compare('id',$this->id);
$criteria->compare('title',$this->title,true);
$criteria->with=array('MeetingParticipants'=>array("select"=>"*"),'MeetingParticipants.group'=>array('select'=>'id,group_name'));
if(isset($this->start_time) && !empty($this->start_time))
$criteria->compare('start_time',date("Y-m-d", strtotime($this->start_time)), true);
$criteria->compare('created_by',$user_id);
if(isset($group)&&!empty($group))
$criteria->compare('group.group_name',$group);
$criteria->together = true;
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
Я создал 4 встречи, на каждой встрече есть как минимум 5 участников, каждый участник принадлежит к группе встреч. Я хочу перечислить все собрания со следующим названием собрания, группами и временем собрания.
Моя проблема заключается в том, что если я включу $criteria->together = true;
, если в собрании более 10 участников, будет отображаться только 1 собрание в виде сетки. Если я отключу это, будет показано все, но я не смогу выполнить поиск по названию собрания. Ссылка на скрипку SQL: http://sqlfiddle.com/#!9/fdaacf полный дамп SQL https://pastebin.com/NtpMuCpE