2016-05-13 16 views
5

Sto cercando qualcosa di simile:Come ottenere l'id successivo del campo generato automaticamente in laravel per una tabella specifica?

DB::table('users')->getNextGeneratedId(); 

non

$user->save($data) 
$getNextGeneratedId = $user->id; 

Qualcuno sa caldo per raggiungere questo obiettivo?

+0

Quale laravel stai usando? Perché hai taggato tutte le versioni disponibili? –

+0

Sto usando laravel 5.2. Ho ingabbiato tutti i laravels perché non è una domanda specifica per la versione di laravel. – fico7489

+0

Le cose possono essere leggermente cambiate tra '4' e' 5' rispetto a Eloquent o Query Builder. Puoi provare 'DB :: getPdo() -> lastInsertId();' o se stai usando la facciata 'DB' da inserire e poi recuperare l'ultimo id inserito:' DB :: table ('users') -> insertGetId ($ utente); ' –

risposta

0

In MySQL è possibile ottenere l'ID generato automaticamente da questa query.

SELECT AUTO_INCREMENT 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = "databaseName" 
AND TABLE_NAME = "tableName" 
1

È possibile utilizzare questo metodo di aggregazione e incrementarlo:

$nextId = DB::table('users')->max('id') + 1; 
2

è necessario eseguire query MySQL per ottenere automaticamente generato ID.

show table status like 'users' 

In Laravel5, è possibile effettuare le seguenti operazioni.

public function getNextUserID() 
{ 

$statement = DB::select("show table status like 'users'"); 

return response()->json(['user_id' => $statement[0]->Auto_increment]); 
} 
1

In Laravel5, è possibile effettuare le seguenti operazioni.

$data = DB::select("SHOW TABLE STATUS LIKE 'users'"); 

$data = array_map(function ($value) { 
    return (array)$value; 
}, $data); 

$userId = $data[0]['Auto_increment']; 
1

questo lavoro per me: (PHP: 7,0 - laravel 5,5)

use DB; 

$statement = DB::select("SHOW TABLE STATUS LIKE 'users'"); 
$nextId = $statement[0]->Auto_increment; 
Problemi correlati