如何在Laravel中保存AJAX RESPONSE

时间:2017-02-22 23:16:28

标签: ajax laravel save response

   return Response()->json(['message' => $input['first_name']]);

在控制台中输入我的输入文本如何将其保存在数据库中?

我尝试使用

$input = Request::all();
        $user = Auth::user();
        $user->first_name = Response()->json(['message' => $input['first_name']]);
        $user->save();

但不行:/

3 个答案:

答案 0 :(得分:2)

您可能会对响应()感到困惑。 那个Response()......应该是控制器末尾的RETURNED。那个例子是

    $input = Request::all();
    $user = Auth::user();
    $user->first_name = $input->first_name;
    $user->save();
    return response()->json(['user_saved' => $user ]);

修改

// HomeController.php
public function editUser(Request $request){
  $user = User::find(Auth::user()->id)->first();
  $user->first_name = $request->first_name;
  if($user->save()){
    return response()->json(["response" =>true,"user"=>$user]);
  }
  return response()->json(["response" =>false,"user"=>$user]);
}

// routes/web.php
 Route::post('/user/update',[
  'uses'=>'HomeController@editUser',
  'as'=>'editUser'
 ]);

// javascript 
$('#updateProfile').on('click', function() {
$.ajax({
    method: 'POST',
    url: '{{route("editUser")}}',
    data: { first_name: $('#firstname').val(), _token: token }
})

(注意如果你正在使用.js文件,你可能想要在包含.js文件的**。blade.php上,在那里定义变量url,就像你似乎在使用令牌一样 例如在刀片中)     // index.blade.php

<script>
  var token = "{{Session::token()}}";
  var urlEditUser = '{{route("editUser")}}';
</script>

答案 1 :(得分:0)

我发送的数据如下: $('#updateProfile').on('click', function() { $.ajax({ method: 'POST', url: '/home/user/update', data: { first_name: $('#firstname').val(), _token: token } })

你的例子不适合我:/

答案 2 :(得分:0)

试试这个

$user = auth()->user();
$user->first_name = request('first_name');
$user->save();

return response()->json([ 'user_saved' => $user ]);