我在我的網站上有類似於facebook的通知。但我只有3個類型的通知:MVC - 此代碼是否屬於模型,控制器或視圖?
- [暱稱]給你發送一個新的quize [quizename]
- [暱稱]將你加入他的團隊[羣組]。接受|否認
- 您今天收到100美元的積分。
表通知
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()."https://stackoverflow.com/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()."https://stackoverflow.com/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代碼。那麼哪種方法更好?或者還有其他方法嗎?
這是視圖邏輯,不要害怕在你的視圖上有這段代碼,只要確保控制器不會生成實際的字符串,但只傳遞必要的數據在視圖上創建它們。 – Mahn