Q1: UserCalendar と CalendarEvent の間の関係を両方のアクティブなレコード モデルで定義する必要があります (メソッド「関係」で)。
あなたのコメントに基づいて、 CalendarEvent モデルと UserCalendar モデルを持つ Calendar モデルがあるようです。カレンダーでの関係が次のとおりであると仮定しましょう。
relations() {
return array(
'userCalendar' => array(self::HAS_MANY, 'UserCalendar', 'calendar_id'),
'calendarEvent' => array(self::HAS_MANY, 'CalendarEvent', 'calendar_id'),
}
カレンダーイベント:
relations() {
return array( 'calendar' => array(self::BELONGS_TO, 'Calendar', 'calendar_id'), );
}
そして UserCalendar で:
relations() {
return array( 'calendar' => array(self::BELONGS_TO, 'Calendar', 'calendar_id'), );
}
との間のリンクを作成するには、カレンダーを使用する必要がUserCalendar
ありCalendarEvent
ます
$criteria = new CDbCriteria;
$criteria->with = array(
"calendarEvent"=>array('condition'=>'planned = 0'),
"userCalendar"=>array('condition'=> 'user_id =' . $user->id),
);
$calendar = Calendar::model()->find($criteria);
ユーザーに$calendar->calendarEvent
属する calendarEvent の配列を返します
Q2: Web ロギングを有効にして、すべての db リクエスト (およびその他のもの) がページの最後に表示されるようにすることができます:
Yii でのロギング (CWebLogging を参照)
アプリケーション構成に入れます
'components'=>array(
......
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CWebLogRoute',
),
),
),
),