我的网站通知中有类似facebook的通知。但我只有3种类型的通知:
表格通知
notification_id |类型| item_id | from_id | to_id |创建|通知
item_id表示quize_id或group_id。我进行了额外的连接以获取所有数据。
我遇到的问题是如何显示每个通知取决于类型。其中一个选项是组织字符串以在控制器中显示:
foreach($results as $key => $result){
switch($result['type']){
case 1:
$string = "<a href=".baseUrl()."/users/$result['userId']>$result['nickname']</a> "._("wants you to take a quize")." <a href='".baseUrl()."/quize/$result['rel']'>$result['quizeName']</a>";
break;
case 2:
$string = "<a href=".baseUrl()."/users/$result['userId']>$result['nickname']</a> "._("added you to his group")." <a href='".baseUrl()."/group/$result['rel']'>$result['groupName']</a>";
break;
case 3:
$string = _("You received 100 credit for log in today");
}
$notifications[$key]['string'] = $string;
}
$data['notifications'] = $notifications;
$this->load->view('views/notifications/last_notification_view', $data);
该方法的问题在于视图的一部分是在控制器内部。我可以发送粗略的数据来查看,但问题是我需要在视图中制作类似的PHP代码。那么哪种方法更好?或者还有其他方法吗?
答案 0 :(得分:4)
我个人的观点是你应该将$ results传递给视图,然后让循环获取结果并打印出视图中的链接。你应该拥有的是控制器:
$data['notifications']=$results;
$this->load->view('views/notifications/last_notification_view', $data);
并且在视图中:
foreach($data['notifications'] as $key => $result){
switch($result['type']){
case 1:
echo "<a href=".baseUrl()."/users/$result['userId']>$result['nickname']</a> "._("wants you to take a quize")." <a href='".baseUrl()."/quize/$result['rel']'>$result['quizeName']</a>";
break;
case 2:
echo "<a href=".baseUrl()."/users/$result['userId']>$result['nickname']</a> "._("added you to his group")." <a href='".baseUrl()."/group/$result['rel']'>$result['groupName']</a>";
break;
case 3:
echo _("You received 100 credit for log in today");
}
}
答案 1 :(得分:2)