使用mongodb在save()之后获取laravel中最后插入文档的id

时间:2017-12-01 15:37:10

标签: ajax mongodb laravel

这是一个代码

public function addItem(Request $req)
{
    $data = new UserModel();
    $data->Name = $req->name;
    $data->IP=$req->ip;
    $data->username=$req->username;
    $data->password=$req->password;
    $data->save();
    return response()->json($data);
}

3 个答案:

答案 0 :(得分:2)

由于在这种情况下$data是一个对象,您可以使用以下方式访问ID:

$id = $data->id;

答案 1 :(得分:2)

在Laravel中,保存或创建使用自动递增ID的新模型后,您可以通过访问对象的id属性来检索ID:

$data->save();
$id = $data->id;

答案 2 :(得分:0)

正如我所说,我没有得到身份证明。我收到此错误是因为插入后。如果你想获得id,它必须像data->_id而不是data->id,因为我在ajax中获得了id data.id,所以我编写如下代码:

$data = new UserModel();
$data->Name = $req->name;
$data->IP=$req->ip;
$data->username=$req->username;
$data->password=$req->password;
$data->save();
$data->id=$data->_id;
return response()->json($data);

并在Ajax中:

$.ajax({
        type: 'post',
        url: '/addItem',
        data: {
            '_token': $('input[name=_token]').val(),
            'name': $('#en').val(),
            'ip': $('#eip').val(),
            'username': $('#eun').val(),
            'password': $('#ep').val()
        },
        success: function(data) {
            if ((data.errors)){
                $('.error').removeClass('d-none');
                $('.error').text(data.errors.name);
            }
            else {
                $('.error').addClass('d-none');
                $('#table').append("<tr class='item" + data.id + "'><td>" + data.id + "</td><td>" + data.IP + "</td><td>" + data.Name + "</td><td>" + data.username + "</td><td>" + data.password + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-name='" + data.Name + "' data-ip='" + data.IP + "' data-username='" + data.username + "' data-password='" + data.password + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-name='" + data.Name + "' data-ip='" + data.IP + "' data-username='" + data.username + "' data-password='" + data.password + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>");
            }
        },
    });