您好我正在构建一个应用程序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\"}]"}
答案 0 :(得分:0)
那是因为您设置了整个请求。试试这个:
$LA->target_languages = $request->input();
答案 1 :(得分:0)
您无需使用方法' put'。如果你想使用基于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');
谢谢:)