2016-02-23 52 views
1

嗨我建立一個應用程序laravel 5.2,我有一個問題,問題是我只保存從JSON的數據,而不是你看到的標題信息底部。我不知道我做錯了什麼。感謝沒有正確保存JSON數據由AJAX發送到laravel控制器

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\"}]"} 

回答

0

這是因爲你設置了整個請求。試試這個:

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

它是現在,如果我保持了我保管。感謝朋友 – user3164089

0

你沒有必要使用'放'的方法。如果你想使用laravel put基礎路線,請將method設置爲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', '[email protected]'); 

東西謝謝:)

+0

感謝Nahid,我的問題的解決方案是添加:$ LA-> TARGET_LANGUAGES = $ request-> input(); – user3164089

相關問題