我有一个表单,用户可以将项目发布到数据库,同时将新用户链接在一起。
表中的Usersid和projects.user_id值。但是,我有一个小问题。如果我从users表中获取最后一个id,并使用那个+1来表示下一个id。但是如果用户在添加带有id的新项目之前被删除,那么当应用程序启动时它会变得非常混乱。
让我们说我的最后一个用户是表中的id 5。但是,有人删除了它,我在第二天用新用户创建了一个新项目。现在下一个id将是id 6.但根据我的代码,它在projects_table中反映了5,但在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,
注意::这有效,但如果以后将删除users表中的最后一行。在相应的项目表中会出现虚假ID的连锁反应,因为他总是会有1个不同之处。我想让那不可能。
答案 0 :(得分:2)
如果您尝试获取新创建的记录的ID,请尝试:
$user = User::create(['name'=>'Stefano']);
$user->id