2016-04-30 12 views
1

Ich möchte die aktuelle ID erhalten, während Sie den Wert in der Datenbank einfügen. Ich werde verwenden, um benutzerdefinierte Daten zu speichern. Wie mache ich es?Laravel - php Wie bekomme ich die aktuelle ID beim Einfügen eines Wertes in die Datenbank?

Ich habe bereits eine Abfrage geschrieben.

$currentId = Student::orderBy('id', 'desc')->get(['id']) + 1; 

Aber es zeigt die folgenden Fehler:

Objekt der Klasse Illuminate \ Database \ Eloquent \ Sammlung nicht sein könnte umgewandelt

+1

'Student :: orderBy ('id', 'desc') -> get (['id'])' gibt Ihnen eine Sammlung und keine ganze Zahl –

Antwort

2
$currentId = Student::orderBy('id', 'desc')->first()->id + 1; 

Aber auf dem schwere int Traffic-Website kann dies möglicherweise Probleme mit der Datenintegrität verursachen, so würde ich diesen Ansatz verwenden:

$student = new Student(); 
.... 
$student->save(); 
$currentId = $student->id; 
+0

Sir, können Sie mir helfen, die ID als ' 001, 002 oder 010' sowas? oder irgendeine Idee. – Hola

+0

Sie können sie als 1, 2, 10 in DB speichern und sie mit Accessor https://laravel.com/docs/5.1/eloquent-mutators#accessors-and-mutators ändern - oder Sie können eine weitere Spalte hinzufügen und diese IDs hinzufügen Wenn Sie nicht wollen, hängen Sie vom Primärschlüssel ab –

+0

Während es eine leere Datenbank gibt, wird Ihre erste Lösung nicht funktionieren, weil es zeigt 'Versuch, keine Objekteigenschaft zu bekommen' – Hola

0

Sie haben so etwas zu tun: -

$insertData['name'] = 'your name'; 
$insertData['password'] = 'password'; 
.. 

etc ..

// $insertData this will be your array which you want to insert in your db. name and password used in insertData array will be same as your table column name.. 

$lastId = Student::insertGetId($insertData); 

Es wird Sie geben letzte ID in Laravel eingefügt, es wird Ihnen helfen.

0

versuchen Sie dies $ data = Student :: orderBy ('id', 'desc') -> get (['id']); $ data-> getId();

+0

' Methode getId existiert nicht.' – Hola

Verwandte Themen