私は自分のサイトの自分のプロフィールページで機能するようにメッセージの削除ボタンを試してこれに取り組んでいました。友達が残したメッセージを削除すると、画面から削除されるだけでなく、データベースからも削除されます。データベース内のメッセージには、message_id、from、to、messageの4つのフィールドがあります。これが私の友達からのメッセージを削除する方法を示す私のプロフィールビューです:
if(!empty($messages)){
foreach($messages as $message):
$delete = $message['message_id'];
//var_dump($message); ?>
<li><?=$message['from']?> says...: "<?=$message['message']?>"(<?=anchor("home/deleteMsg/$delete", 'delete')?>)</li> //this is where the delete button appears beside messages left
<?php endforeach?>
<?php }else{ ?>
<?php echo 'No messages left yet !!!'; }?>
これが私のコントローラーで、次のようなdeleteMsg関数を示しています。
function deleteMsg($messageid)
{
$this->messages->deleteMsg($messageid);
redirect('home');
}
deleteMsgモデル自体を示すメッセージモデルは次のとおりです。
function deleteMsg($message_id)
{
$this->db->where(array('message_id' => $message_id));
$this->db->delete('messages');
}
これが私のfriendprofileビューで、メッセージの削除コマンドを実装して、残したメッセージのボタンが表示され、メッセージを削除できるようにします。削除ボタンは、このページの他の友達のコメントの横には表示されません。
<li><?=$message['from']?> says...: "<?=$message['message']?>"</li>
これまでのところ、新しいメッセージ削除関数を作成しようとしましたが、成功しませんでした。同じ関数を呼び出すよりも、これを実行したほうがよいでしょうか。これもうまくいきませんでした。