私は自分のサイトの通知に、Facebook と同様のものを持っています。しかし、私は3種類の通知しか持っていません:
- [ニックネーム] さんが新しいクイズ [クイズ名] を送信しました
- [ニックネーム] があなたを彼のグループ [グループ名] に追加しました。受け入れる | 拒否
- 今日のログインで 100 ドルのクレジットを受け取りました。
テーブル通知
通知 ID | タイプ | item_id | from_id | to_id | 作成 | 通知
item_id は quize_id または group_id を表します。すべてのデータを取得するために追加の結合を行います。
私が抱えている問題は、タイプに応じて各通知を表示する方法です。オプションの 1 つは、コントローラーに表示する文字列を整理することです。
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 コードを表示する必要があることです。では、どの方法が良いでしょうか?それとも他に方法はありますか?