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!

2voto

Kamal Maisuriya Punkte 39
$objPost = new Post;
$objPost->title = 'Titel';
$objPost->description = 'Beschreibung';   
$objPost->save();
$recId = $objPost->id; // Wenn die Id im Tabellenspaltennamen anders ist als id, dann verwenden Sie den anderen Spaltennamen

return Response::json(['erfolg' => true,'id' => $recId], 200);

1voto

PPL Punkte 6026

Um die zuletzt eingefügte ID in der Datenbank zu erhalten, können Sie folgenden Code verwenden:

$data = new YourModelName;
$data->name = 'Some Value';
$data->email = 'abc@mail.com';
$data->save();
$lastInsertedId = $data->id;

Hier wird $lastInsertedId Ihnen die zuletzt eingefügte automatisch inkrementierte ID geben.

1voto

automatix Punkte 12648

Der kürzeste Weg ist wahrscheinlich ein Aufruf des refresh() auf dem Modell:

public function create(array $data): MyModel
{
    $myModel = new MyModel($dataArray);
    $myModel->saveOrFail();
    return $myModel->refresh();
}

1voto

Md Rasheduzzaman Punkte 447

Sie können es auch so versuchen:

public function storeAndLastInrestedId() {
    $data = new ModelName();
    $data->title = $request->title;
    $data->save();

    $last_insert_id = $data->id;
    return $last_insert_id;
}

1voto

surajav Punkte 11

Hier ist, wie es für mich funktioniert hat, family_id ist der Primärschlüssel mit automatischer Inkrementierung. Ich benutze 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 ist der Primärschlüssel und automatische Inkrementierung
        return redirect('/family/detail/' .  $family->family_id);
    }

Auch in der Modell-Family-Datei, die Model erweitert, muss das Inkrement auf true gesetzt sein, ansonsten wird das obige $family->family_id leer zurückgeben

    public $incrementing = true;

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