ユーザーメッセージングシステムのユーザー受信ボックスで、ユーザーが電子メールメッセージをお気に入りのメッセージにすることができる機能を構築しています。
メッセージモデルに2つのメソッドを作成しました。'messages'テーブルの'favourite'列の0を1に更新します。これは、ユーザーがメッセージをお気に入りにすることを意味します。また、ユーザーがクリックしてメッセージをお気に入りにする画像が灰色から色に変わります。
次に、ユーザーがメッセージをお気に入りにしないようにしたい場合は、これと同じプロセスを再度実行します。1が0に更新され、画像が再びグレー表示になります。
以下は、ボックスがチェックされている場合(画像がカラー)に基本的に何かを実行し、ボックスがチェックされていない場合(画像がグレー表示されている)に何かを実行する私のjquery/javascriptです。
// favourite check box
$('input.favourite:checkbox').simpleImageCheck({
image: '<?php echo base_url()?>images/messages/check.png',
imageChecked: '<?php echo base_url()?>images/messages/unchecked.png',
afterCheck: function(isChecked) {
if (isChecked) {
//query to db from php to update favourite number to 1
}
else (!isChecked)
{
//query to db from php to update favourite number to 0
}
}
});
私が理解しようとしているのは、モデルで2dbクエリを呼び出すための最良の方法です。
public function favourite_checked($message_id)
{
$username = $this->session->userdata('username');
return $this->db->query("UPDATE messages SET favourite = 1 WHERE id = $message_id AND to_user = '$username'");
}
public function favourite_unchecked($message_id)
{
$username = $this->session->userdata('username');
return $this->db->query("UPDATE messages SET favourite = 0 WHERE id = $message_id AND to_user = '$username'");
}
これを行うための最良の方法は何でしょうか?ビューでモデルを直接呼び出すのは悪い習慣ではありませんか?
では、どうすれば達成したいことを達成できますか?
コントローラーは仲介者として機能できますか?
もしそうなら、JavaScript関数でコントローラーを呼び出す方法はありますか?
私はいつもここで与えられたアドバイスに感謝します。前もって感謝します