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!

15voto

dustypaws Punkte 301

Auch wenn diese Frage etwas veraltet ist. Meine schnelle und einfache Lösung würde so aussehen:

$last_entry = Model::latest()->first();

Aber ich denke, es ist anfällig für Rennbedingungen in stark frequentierten Datenbanken.

13voto

Faridul Khan Punkte 1369

Für insert()

Beispiel:

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

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

12voto

Qamar Uzman Punkte 1032

Hier ist, wie wir die zuletzt eingefügte ID in Laravel 4 erhalten können

public function store()
{
    $input = Input::all();

    $validation = Validator::make($input, user::$rules);

    if ($validation->passes())
    {

     $user= $this->user->create(array(
            'name'              => Input::get('name'),
            'email'             => Input::get('email'),
            'password'          => Hash::make(Input::get('password')),
        ));
        $lastInsertedId= $user->id; //bekommen die ID des zuletzt eingefügten Datensatzes
        $userId= array('user_id'=>$lastInsertedId); //lege diesen Wert gleich der Spaltenbezeichnung der Tabelle fest, wo er gespeichert wird
        $user->update($userId); //aktualisiere den neu erstellten Datensatz, indem der Wert der zuletzt eingefügten ID gespeichert wird
            return Redirect::route('users.index');
        }
    return Redirect::route('users.create')->withInput()->withErrors($validation)->with('message', 'Es gab Validierungsfehler.');
    }

8voto

Amir Punkte 8591

Nach dem Speichern des Modells hat die initialisierte Instanz die ID:

 $report = new Report();
$report->user_id = $request->user_id;
$report->patient_id = $request->patient_id;
$report->diseases_id = $request->modality;
$isReportCreated = $report->save();
return $report->id;  // das wird die gespeicherte Berichts-ID zurückgeben

7voto

Priyanka Patel Punkte 323

Sie können ganz einfach die Id des zuletzt eingefügten Datensatzes abrufen

$user = User::create($userData);
$lastId = $user->value('id');

Es ist ein toller Trick, um die Id aus dem zuletzt eingefügten Datensatz in der Datenbank abzurufen.

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