Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';无法使用Elount从数据库中获取最后一个插入id_Php_Jquery_Laravel_Eloquent_Last Insert Id - Fatal编程技术网

Php Can';无法使用Elount从数据库中获取最后一个插入id

Php Can';无法使用Elount从数据库中获取最后一个插入id,php,jquery,laravel,eloquent,last-insert-id,Php,Jquery,Laravel,Eloquent,Last Insert Id,我使用表单和AJAX向控制器发送数据,并尝试将插入db的数据返回到页面 除了项目的id之外,一切正常 以下是我的控制器: public function store(Request $request) { $this->validate($request, [ 'name' => 'required|max:255', ]); $tag = new tag; $tag->name = $request->name; $tag->sa

我使用表单和AJAX向控制器发送数据,并尝试将插入db的数据返回到页面

除了项目的id之外,一切正常

以下是我的控制器:

public function store(Request $request)
{
  $this->validate($request, [
      'name' => 'required|max:255',
  ]);

  $tag = new tag;
  $tag->name = $request->name;
  $tag->save();

  $last_insert_id = $tag->id;

  $data = [
      'success' => true,
      'message'=> 'Your AJAX processed correctly',
      'name' => $tag->name,
      'id' => $last_insert_id
    ] ;

    return response()->json($data);
}
以及剧本的相关部分:

$(document).ready(function(){

  $("#submit").click(function() {


    var name = $("#tagName").val();
    var token = $("#token").val();

    $.ajax({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
      type: "post",
      data: "name="+name,
      dataType:'json',
      url: "{{ route('tags.store') }}",
      success:function($data){
        console.log($data);
        $("#msg").html("<div class=\"alert alert-primary my-0\">tag Saved</div>");
        $("msg").toggleClass("invisible")
        $("#msg").fadeOut(2000);
        $("#tagTable").append('<tr><td scope="col" class="text-center align-middle">'+$data[id]+'</td><td scope="col"><button type="button" class="btn btn-outline-secondary btn-sm my-1">'+name+'</button></td><td scope="col" class="text-center" >0</td></tr>');
      }
    });
  })
})$("#tagTable").append('<tr><td scope="col" class="text-center align-middle">'+id+'</td><td scope="col"><button type="button" class="btn btn-outline-secondary btn-sm my-1">'+name+'</button></td><td scope="col" class="text-center" >0</td></tr>');
  }
});

我不确定它是从表单输入中获取
name
,还是从控制器返回的数据?

当您附加到#tagTable时,您必须使用
data.id
,因为数据是json对象

当您附加到#tagTable时,您必须使用
data.id
,因为在回调中数据是json对象

name
是您在ajax调用之前定义的变量,而不是响应中的名称。请尝试用数据替换js脚本中的$data。@jcpdev-调用响应
$data
data
不会有任何区别。这只是一个变量名。它将产生不同……数据与$data@lewis4u-OP始终使用
$data
,因此将所有实例改为
data
不会有任何区别。这就像要求OP将变量名从
pancake
更改为
flapjack
。在变量前面有一个
$
在JS中没有任何特殊意义,
name
是您在ajax调用之前定义的变量,而不是响应中的名称。请尝试用数据替换js脚本中的$data。@jcpdev-调用响应
$data
data
不会有任何区别。这只是一个变量名。它将产生不同……数据与$data@lewis4u-OP始终使用
$data
,因此将所有实例改为
data
不会有任何区别。这就像要求OP将变量名从
pancake
更改为
flapjack
。在变量前面有一个
$
在JS中没有任何特殊意义。
{success: true, message: "Your AJAX processed correctly", name: "test2", id: 36}

Uncaught ReferenceError: id is not defined
    at Object.success (tags:102)
    at l (app.js:1)
    at Object.fireWith [as resolveWith] (app.js:1)
    at E (app.js:1)
    at XMLHttpRequest.<anonymous> (app.js:1)