AJAX POST 和 laravel (5.6) 中的资源控制器的正确方法是什么?
What is the correct approach to an AJAX POST and a resource controller in laravel (5.6)?
所以我对 javscript / ajax 等完全陌生,并试图掌握它。
我对 AJAX 调用进行了各种排列,足以知道它基本上可以正常工作。
现在具体来说,我正在尝试将 "form" 的内容添加到我的数据库中。
所以...
1.这是我在 web.php
中的路线条目
Route::resources(['evaluations' => 'EvaluationsController']);
2。我的资源控制器的创建方法显示了表单,其中包含 javascript/ajax。
public function create()
{
return view ('evaluations.create');
}
2。我的 ajax 调用形式为
$.ajax({
type:"POST",
url:"/evaluations",
headers: { 'CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
datatType : 'json',
data:oneEvaluation,
cache: false,
contentType: false,
processData: false,
error: function (data)
{
console.log('AJAX call Failed');
},
success: function(data)
{
console.log('AJAX call success');
},
});
3。 ajax 调用被路由到存储方法
public function store(Request $request)
{
dd($request);
return response()->json($response);
....
4。我得到了正确的结果
即使 dd();
不起作用
AJAX call success
{status: "success", msg: null}
那么现在...写入数据库的代码属于哪里?一方面,我希望进一步开发我的 "store" 功能,并将新的项目 ID 交给 show 方法以显示积极的结果。
但是 ajax 调用似乎仍然处于控制之中,并将事情带回原来的创建视图。这是否意味着执行数据库存储操作的逻辑应该首先以作为 ajax 调用源的形式写入 javascript?我很困惑。
所以,Javascript是客户端语言,不能直接用客户端语言写数据库。您需要使用服务器端语言,在您的情况下 php。所以你的插入应该发生在 Laravel Controller 和 return 成功响应中。
您需要创建一个 eloquent 模型进行评估(文档在这里 ->https://laravel.com/docs/5.6/eloquent)。然后在您的控制器中,您可以调用 Evaluations::create() 方法。然后调用Evaluations模型的save方法,数据就会持久化到数据库中。
所以我对 javscript / ajax 等完全陌生,并试图掌握它。 我对 AJAX 调用进行了各种排列,足以知道它基本上可以正常工作。
现在具体来说,我正在尝试将 "form" 的内容添加到我的数据库中。
所以...
1.这是我在 web.php
中的路线条目Route::resources(['evaluations' => 'EvaluationsController']);
2。我的资源控制器的创建方法显示了表单,其中包含 javascript/ajax。
public function create()
{
return view ('evaluations.create');
}
2。我的 ajax 调用形式为
$.ajax({
type:"POST",
url:"/evaluations",
headers: { 'CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
datatType : 'json',
data:oneEvaluation,
cache: false,
contentType: false,
processData: false,
error: function (data)
{
console.log('AJAX call Failed');
},
success: function(data)
{
console.log('AJAX call success');
},
});
3。 ajax 调用被路由到存储方法
public function store(Request $request)
{
dd($request);
return response()->json($response);
....
4。我得到了正确的结果
即使 dd();
不起作用
AJAX call success
{status: "success", msg: null}
那么现在...写入数据库的代码属于哪里?一方面,我希望进一步开发我的 "store" 功能,并将新的项目 ID 交给 show 方法以显示积极的结果。
但是 ajax 调用似乎仍然处于控制之中,并将事情带回原来的创建视图。这是否意味着执行数据库存储操作的逻辑应该首先以作为 ajax 调用源的形式写入 javascript?我很困惑。
所以,Javascript是客户端语言,不能直接用客户端语言写数据库。您需要使用服务器端语言,在您的情况下 php。所以你的插入应该发生在 Laravel Controller 和 return 成功响应中。
您需要创建一个 eloquent 模型进行评估(文档在这里 ->https://laravel.com/docs/5.6/eloquent)。然后在您的控制器中,您可以调用 Evaluations::create() 方法。然后调用Evaluations模型的save方法,数据就会持久化到数据库中。