2015-12-14 15 views
5

我有一種表單,用戶可以將項目發佈到數據庫,同時創建一個新用戶,並將兩個用戶鏈接在一起。「Laravel 5.1」使用userId添加用戶和項目

表中的Usersid和projects.user_id值。但是,我有一個小問題。如果我從用戶表中獲取最後一個ID,並使用那個+1作爲下一個ID,它就可以工作。但是如果用戶在添加新項目之前被刪除,那麼在應用程序啓動時它會變得非常混亂。

比方說,我得到的最後一個用戶爲表5中的id 5。但是,有人刪除了它,我在第二天用新用戶創建了一個新項目。現在下一個id將是id 6.但根據我的代碼,它反映了5個在projects_table中,但在users_table中它變成了6.

我想知道如果有人可以建議我一個功能,我可以使用正確的編號?

功能驗證之前得到最後一個ID

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

我算最後一個ID爲它添加到項目

$lastidplus = (int)User::getLastRow() + 1; 
在我的驗證

我有這樣的:

'user_id' => $lastidplus, 

注意::這可以工作,但如果將來用戶表中的最後一行被刪除。在相應的項目表中會出現虛假ID的連鎖反應,因爲他總會有一個差異。我想讓這不可能。

+2

感謝@Raj爲使其更好一點。再次發帖時會更加註意! –

+2

因爲你的英語不夠好,你能否在你的問題中包括一些代碼,以便我們更好地理解 – Digitlimit

+1

@StefanoGroenland你永遠wlcm – CandleCoder

回答

2

如果你想獲得一個新創建的記錄嘗試的ID:

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

用'$ user = User :: create(...)'''gebruiker_id'=> $ user-> id'使它成爲感謝給我和主意! –