我目前正在使用下面的代码在一个表中插入数据:

<?php

public function saveDetailsCompany()
{
    $post = Input::All();

    $data = new Company;
    $data->nombre = $post['name'];
    $data->direccion = $post['address'];
    $data->telefono = $post['phone'];
    $data->email = $post['email'];
    $data->giro = $post['type'];
    $data->fecha_registro = date("Y-m-d H:i:s");
    $data->fecha_modificacion = date("Y-m-d H:i:s");

    if ($data->save()) {
        return Response::json(array('success' => true), 200);
    }
}

我想返回插入的最后一个ID,但我不知道如何获取它。

亲切的问候!


当前回答

$data->save()

$data->id会给你插入的id,

注意:如果您的自增列名是sno,那么您应该使用 $data->sno而不是$data->id

其他回答

在Laravel 5.2中,我会让它尽可能的干净:

public function saveContact(Request $request, Contact $contact)
{
   $create = $contact->create($request->all());
   return response()->json($create->id,  201);
}

这就是它是如何为我工作的,family_id是自动增量的主键,我使用Laravel7

    public function store(Request $request){
        $family = new Family();
        $family->family_name = $request->get('FamilyName');
        $family->family_no = $request->get('FamilyNo');
        $family->save();
        //family_id is the primary key and auto increment
        return redirect('/family/detail/' .  $family->family_id);
    }

同样在Model Family文件中,应该将增量设置为true,否则上面的$ Family——>family_id将返回空

    public $incrementing = true;
  

对于insert ()

例子:

$data1 = array(
         'company_id'    => $company_id,
         'branch_id'        => $branch_id
     );

$insert_id = CreditVoucher::insert($data1);
$id = DB::getPdo()->lastInsertId();
dd($id);

保存后,$data->id应该是最后插入的id。

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

可以这样使用。

return Response::json(array('success' => true, 'last_insert_id' => $data->id), 200);

更新laravel版本试试这个

return response()->json(array('success' => true, 'last_insert_id' => $data->id), 200);

这里有一个例子:

public static function saveTutorial(){

    $data = Input::all();

    $Tut = new Tutorial;
    $Tut->title = $data['title'];
    $Tut->tutorial = $data['tutorial'];   
    $Tut->save();
    $LastInsertId = $Tut->id;

    return Response::json(array('success' => true,'last_id'=>$LastInsertId), 200);
}