나는 사용자가 각 프로필을 좋아할 수있는 능력을 제공하고자하는 소규모 사이트가 ajax
입니다.Fuelphp orm을 가진 논리처럼
논리가 이것인데, 사용법이 클릭처럼 삽입되면, 사람이 이미 좋아하고 데이터베이스에있는 것이 삭제되면 레코드가 삭제됩니다.
컨트롤러가 이렇게 보입니다.
public function action_like()
{
$response = Response::forge();
$like = Model_Like::forge();
$like->user_id = Input::post('user_id');
$like->liked_by = Session::get('sentry_user');
// find if the user already liked
$row = Model_Like::find(array($like->user_id, $like->liked_by));
//if liked remove from database
if($row):
$response->body(json_encode(array(
'status' => 'no',
)));
$row->delete();
else:
$response->body(json_encode(array(
'status' => 'yes',
)));
$like->save();
endif;
return $response;
}
자바 스크립트
$('button.like').on('click', function(){
var likeId = $(this).data('like')
valPlus = parseInt($('.like-total').text()) + 1;;
$.ajax({
type: "POST",
url: site_url + 'profile/like/',
data: {user_id: likeId},
dataType: "json",
context: this,
//async: false,
beforeSend: function(data) {
$(this).attr('disabled', 'disabled');
},
success: function(data) {
console.debug(data);
if(data.status == "yes") {
$('.like-total').text(valPlus);
}
},
complete: function(data) {
$(this).removeAttr('disabled', 'disabled');
}
})
});
그래서 문제는 $row
항상 null
을 retunrs이다, 그래서 삽입 항상 두 아이디의를 locateing하고 있지 않습니다.
내가 누락 된 내용을 누군가에게 알려주시겠습니까?
고맙습니다.
'Model_Like'는 어떻게 정의 되었습니까? – Savageman