ユーザーが自分のアカウントにいて、[アカウントの削除]をクリックすると、ユーザーに残されたメッセージとともにユーザーが削除され、他のユーザーには友達として表示されなくなります。これらのうち2つは機能していますが、ログインすると別のユーザーにメッセージが表示されます。ユーザーが友達からメッセージを削除するために使用できる関数が既に作成されているので、これを新しい関数に実装してみました。メッセージを削除しますが、特定の友達からです。これが元のdeleteMsgで、すべてのフィールド(message_id、from、to、message)が削除されるため、メッセージはメッセージデータベースから削除されます。この関数は私のメッセージモデルに表示されます:
function deleteMsg($message_id)
{
$this->db->where(array('message_id' => $message_id));
$this->db->delete('messages');
}
これが私が実装しようとしている関数です。削除アカウントが呼び出されると、この削除されたユーザーが他のユーザーのホームページに残したすべてのメッセージが削除されます。それは私のモデルにも現れます:
function deleteAccountMsg($message_id, $from)
{
$delAcctMsg = $this->db->select('*')->from('messages')->where('message_id', $message_id)->where('from', $from);
$delete = $this->db->delete('messages', $delAcctMsg);
}
最後に、これが私のコントローラーのDeleteUserAccount関数で、ユーザーに関連付けられているすべてのものを取得して削除することになっています。
function Deleteuseraccount()
{
parent::__construct();
$this->load->model("membership");
$this->load->model("friends");
$this->load->model("messages");
$username = $this->session->userdata('username');
$this->membership->deleteUser($username);
$this->friends->deleteMemberFriend($username, $friendname);
$this->messages-> deleteAccountMsg($message_id, $from);// this is the function I'm calling that isn't deleting the associate messages from the deleted user
$this->session->sess_destroy();
redirect('start');
}
}