我目前正在尝试生成一个表单,允许用户在注册后注册到页面上的事件。
我遇到的问题是,我不确定如何防止它在注册时显示相同的消息
到目前为止我的镜头包括查看活动与会者,在eventattendee表中抓取用户和事件ID,然后将它们与事件表中的事件ID进行匹配
活动模式:
public function getRegistrationLink() {
$eventAttendees = EventAttendees::model()->findAll('user_id=:user_id', array(':user_id' => $userID));
$eventAttendees->getEventsAttendingfor();
// No Sessions for this event
if ($this->getCountSessions() <= 0) {
return self::BOOKING_STATUS_NOT_AVAILABLE;
} else if ($this->getRemainingCapacity() > 0 ) {
return CHtml::link('<i class="fa fa-caret-right"></i> I\'d like to attend', Yii::app()->createUrl("event/register", array("id" => $this->id)));
//LINE I'm HAVING ISSUE WITH
if($eventID == $eventTableID ) {
return CHtml::link('<i class="fa fa-caret-right"></i> You are attending. View booking details ', Yii::app()->createUrl("event/view", array("id" => $this->id)));
}
}
else {
return self::BOOKING_STATUS_SOLD_OUT;
}
}
我遇到的问题是
if($eventID == $eventTableID ) {
return CHtml::link('<i class="fa fa-caret-right"></i> You are attending. View booking details ', Yii::app()->createUrl("event/view", array("id" => $this->id)));
}
我不确定匹配ID是否是更改此消息的最佳方式,或者我是如何从两个不同的模型/表中声明相同的ID并基于用户ID
我正在使用的表是活动参加者,其中包括活动ID和用户ID以及具有活动ID的活动表。
答案 0 :(得分:0)
您应该查询事件参与者表并添加where语句,以便仅获取事件ID与您要检查的事件匹配的行,以及用户ID与登录/注册用户的ID匹配的位置。
如果查询返回一行,则用户已注册。
查询应该是:
SELECT count(*) FROM event_attendees WHERE 'event_id' = 123 AND 'user_id' = 456;