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方法,数据就会持久化到数据库中。