【问题标题】:No saved correctly JSON data sent by AJAX to laravel controller没有正确保存 AJAX 发送到 laravel 控制器的 JSON 数据
【发布时间】:2016-06-05 04:36:15
【问题描述】:

您好,我正在构建一个应用程序 laravel 5.2,我有一个问题,问题是我只保存来自 JSON 的数据,而不是您在底部看到的标题信息。我想知道我做错了什么。谢谢

Ajax在视图中

$.ajax({
          url: 'http://{!! $_SERVER['SERVER_NAME'] !!}/settings/languages_available/{!!$lang->id!!}/update_target',
          type: "put",
          data: {"target":""+JSON.stringify(data_rate)+""},
          success: function(data){
            console.log(data);
          }
        });  

控制器中的功能

 public function updateTargetLanguages(Request $request, $id)
    {
        $LA = LanguageAvailable::find($id);    
        $LA->target_languages = response()->json($request);
        $LA->save(); 
    }

在数据库中是这样存储的:

HTTP/1.0 200 OK
 Cache-Control: no-cache
 Content-Type:  application/json

 {"target":"[{\"title\":\"Brazilian Portuguese\",\"rate\":\"0.04\"},{\"title\":\"Belarusian\",\"rate\":\"0.06\"},{\"title\":\"Canadian French\",\"rate\":\"0.06\"}]"}

【问题讨论】:

    标签: php jquery ajax laravel laravel-5


    【解决方案1】:

    那是因为您设置了整个请求。试试这个:

    $LA->target_languages = $request->input();
    

    【讨论】:

    • 如果我保留我保留的东西,那就是现在。谢谢朋友
    【解决方案2】:

    您无需将方法用作“放置”。如果你想使用基于 laravel put 的路由,请将方法设置为 post 并添加一个带有数据的元素作为 '_method' 键。看例子

    $.ajax({
              url: 'http://{!! $_SERVER['SERVER_NAME'] !!}/settings/languages_available/{!!$lang->id!!}/update_target',
              method: "POST",
              data: {"_method":"PUT", "target":""+JSON.stringify(data_rate)+""},
              success: function(data){
                console.log(data);
              }
            }); 
    

    在路由中使用这个过程或类似的东西

    Route::put('your/route', 'YourController@updateTargetLanguages'); 
    

    谢谢你:)

    【讨论】:

    • 感谢 Nahid,我的问题的解决方案是添加:$ LA-> TARGET_LANGUAGES = $ request-> input ();
    猜你喜欢
    • 2017-03-11
    • 2019-10-21
    • 2015-06-25
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多