使用带有Laravel的Ajax增加数据库数据

时间:2016-10-07 00:27:01

标签: php ajax

    ...
$('#check_ticket').click(function() {
    $.ajax({
        type: "POST",
        url: "{{ Extras::getEUserURLPath(Auth::user()->user_id, '/ajax/setticket') }}",
        dataType: 'json',
        data: {
            ticket: $('#ticket_field').val(),
            reservation_id: $('#reservation_id').val(),
            user_id: {{ Auth::user()->user_id }},
            _token: $('input[name="_token"]').val(),
        },
        success: function(data) {
            if (data.response == true && data.disable == true) {
                $('#ticket_field').next().html('Successfully applied ticket!');
                $('#ticket_field').prop('disabled', true);
                location.reload(true);
                ...
}

美好的一天。我想增加表格上的数据" 票证",列" times_used "每当我点击" check_ticket "按钮。谁能帮我?我认为这是一个愚蠢的问题,但我不喜欢,所以请放轻松我。

1 个答案:

答案 0 :(得分:0)

我想也许你对Laravel在MVC框架方面的工作方式的理解是缺少一点 - 至少从问题:)。从AJAX方法,您希望将数据传递给控制器​​。此控制器路径将在routes.php文件(< L5.3)或web.php文件(L5.3)中设置。

该路线看起来像:

Route::post('updateCoupon', 'CouponController@increment');

以上显示了“更新优惠”的路线。传递给CouponController控制器的增量方法。或者,如果这是您想要使用优惠券的唯一方法,您可以在路线/网络文件中进行简单的关闭:

Route::post('updateCoupon', function(){
   $couponId = \Input::get('couponId');
   $coupon = App\Coupon::find($couponId);
   $coupon->times_used ++;
   $coupon->save();

});

这是一个粗略的例子 - 优惠券类将是一个'模型'你可以调用的类,times_used将是该类中的一个字段。如果你想扩展到单个方法/闭包之外,上面闭包中的方法可能类似于你在控制器类中放置的方法。如果您有多个优惠券,请从ajax传递ID。

从ajax调用URL比上面的更容易,你可以:

url: "{{url('updateCoupon')}}"

在routes.php / web.php中设置路由后。 Laravel' url'方法神奇地使路由正确。

底线:如果您想要做的就是增加数据库中的times_used,那么除了couponId之外,你不需要从ajax传递任何东西,如果只是你,你甚至不需要有一张优惠券。那就是:

$coupon = App\Coupon::find(1);

其余的都是一样的。