繁体   English   中英

在Laravel中使用AJAX更新数据库

[英]updating database using AJAX in laravel

我在控制器中有以下代码

public function responcename(request $request) {
    $data = request()->all();
    //$name = $data['name'];
    $user = Auth::user();
    $userId = $user->email;
    /////DB::update('update users set tutorial_detail = ? where email =         ?',[$data['name'], $userId]);
    //$tutorial_name = DB::select('select tutorial_detail from users where id = ?', array($userId));
    return response()->json(['tutorialname' => $data['name']]);
 }

路线是

Route::get('change_tutorialname', 'teacher@edittutorialname');
Route::post('/change_tutorialname','teacher@responcename');

当我评论$ user = Auth :: user(); $ userId = $ user->电子邮件; 它可以正常工作..但是当我取消注释时,下面的ajax显示错误消息是ajax代码

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
$(".btn-submit").click(function(e){
    e.preventDefault();
    var name = $("input[name=name]").val();
    $.ajax({
        type:'POST',
        url:'/change_tutorialname',
        data: {name: name},
        success:function(data){
            $("form").css("display", "none");
            alert(data.tutorialname);
        },
        error: function(){
            alert("Record not deleted.")
        },
    });
});

代替

DB::update('update users set tutorial_detail = ? where email =         ?',[$data['name'], $userId]);

尝试:

DB::statement('update users set tutorial_detail = ? where email =         ?',[$data['name'], $userId]);

你冷尝试一下:

    public function responcename(request $request) {
       User::find(Auth::id())->update([
         'name' => $request->name
       ]);

        return response()->json(['tutorialname' => $request->name]);
     }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM