2015-12-14 13 views
5

Ho un modulo in cui un utente può pubblicare un progetto nel database insieme a creare un nuovo utente in cui entrambi sono collegati insieme."Laravel 5.1" aggiungi utente e progetto con ID utente

Usersid e projects.user_id valori nella tabella.Ma, ho un piccolo problema. Se ottengo l'ultimo id dalla tabella degli utenti e uso quello +1 per il prossimo id funziona. ma se un utente viene cancellato prima di aggiungere il nuovo progetto con id, può diventare davvero disordinato all'avvio dell'applicazione.

diciamo che ho ottenuto l'ultimo utente come id 5 nella tabella. ma qualcuno lo ha cancellato e ho fatto un nuovo progetto con un nuovo utente il giorno dopo.Ora il prossimo id sarà id 6. ma secondo il mio codice esso riflette 5 nel projects_table ma nel users_table diventa 6.

Mi stavo chiedendo se qualcuno mi può suggerire una funzione che potrei usare per avere l'id giusto?

funzione per ottenere l'ultimo id

public static function getLastRow(){ 
      $data = DB::table('users')->select('id') 
       ->orderBy('id', 'desc') 
       ->first(); 
      return $data->id; 
     } 

prima validatore io reputo l'ultimo ID per aggiungerlo ai progetti

$lastidplus = (int)User::getLastRow() + 1; 

nel mio validatore ho questo:

'user_id' => $lastidplus, 

NOTA: questo funziona ma se in futuro l'ultima riga nella tabella utenti viene eliminata. Verrà una reazione a catena di falsi ID nella tabella dei progetti corrispondente, poiché avrà sempre 1 differenza. e voglio renderlo impossibile.

+2

grazie @Raj per aver reso un po 'più bello. presterà più attenzione quando si fa di nuovo un post! –

+2

dal momento che il tuo inglese non è abbastanza buono, puoi includere del codice nella tua domanda in modo da poter capire meglio – Digitlimit

+1

@StefanoGroenland ur sempre wlcm – CandleCoder

risposta

2

Se si sta tentando di ottenere l'ID di un record di prova appena creato:

$user = User::create(['name'=>'Stefano']); 
$user->id 
+2

reso con '$ user = User :: create (...)' ''gebruiker_id' => $ user-> id' grazie per avermi dato e idea! –