407 Stimmen

Holen Sie sich die zuletzt eingefügte ID mit Laravel Eloquent

Derzeit verwende ich den folgenden Code, um Daten in eine Tabelle einzufügen:

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);
    }
}

Ich möchte die zuletzt eingefügte ID zurückgeben, weiß aber nicht, wie ich sie bekommen soll.

Mit freundlichen Grüßen!

29voto

Abdulhakim Zeinu Punkte 2145

Es gibt mehrere Möglichkeiten, um die zuletzt eingefügte ID zu erhalten. Alle basieren darauf, welche Methode Sie beim Einfügen verwendet haben. In Ihrem Fall können Sie die letzte ID wie folgt erhalten:

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

Für andere, die wissen müssen, wie sie die zuletzt eingefügte ID erhalten, wenn sie andere Einfügemethoden verwenden, hier ist wie:

  • Verwendung der Methode create()

    $book = Book::create(['name'=>'Laravel Warrior']);

    $lastId = $book->id;

  • Verwendung von insertGetId()

    $id = DB::table('books')->insertGetId( ['name' => 'Laravel warrior'] ); $lastId = $id;

  • Verwendung der Methode lastInsertId()

    $lastId = DB::getPdo()->lastInsertId();

Referenz https://easycodesolution.com/2020/08/22/last-inserted-id-in-laravel/

20voto

user28864 Punkte 3205

Dies hat für mich in Laravel 4.2 funktioniert

$id = Benutzer::insertGetId([
    'username' => Input::get('username'),
    'password' => Hash::make('password'),
    'active'   => 0
]);

19voto

Mujibur Punkte 887

In Laravel 5: du kannst folgendes tun:

use App\Http\Requests\UserStoreRequest;
class UserController extends Controller {
    private $user;
    public function  __construct( User $user )
    {
        $this->user = $user;
    }
    public function store( UserStoreRequest $request )
    {
       $user= $this->user->create([
            'name'              => $request['name'],
            'email'             => $request['email'],
            'password'          => Hash::make($request['password'])
        ]);
        $lastInsertedId= $user->id;
    }
}

17voto

jsdev Punkte 630

Hier ist ein Beispiel:

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);
}

15voto

Niklesh Raut Punkte 31527

Verwenden Sie insertGetId, um gleichzeitig einzufügen und die eingefügte ID abzurufen

Aus Dokument

Wenn die Tabelle eine autoinkrementierende ID hat, verwenden Sie die Methode insertGetId, um einen Datensatz einzufügen und dann die ID abzurufen:

Von Modell

$id = Model::insertGetId(["name"=>"Niklesh","email"=>"myemail@gmail.com"]);

Von DB

$id = DB::table('users')->insertGetId(["name"=>"Niklesh","email"=>"myemail@gmail.com"]);

Weitere Einzelheiten : https://laravel.com/docs/5.5/queries#inserts

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X