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'), );
}
在用户日历中:
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 请求(和其他内容)将出现在页面末尾:
Logging in Yii(请参阅 CWebLogging)
在您的应用程序配置中放置
'components'=>array(
......
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CWebLogRoute',
),
),
),
),