";Laravel 5.1〃;添加userId为的用户和项目


"Laravel 5.1" add user and project with userId

我有一个表单,用户可以在其中将一个项目发布到数据库,同时创建一个新用户,将两者链接在一起。

表中的Usersid和projects.user_id值。但是,我有一个小问题。如果我从users表中获得最后一个id,并将该id加1作为下一个id,那么它就可以工作了。但是,如果用户在添加带有id的新项目之前被删除,那么在应用程序启动时可能会变得非常混乱。

假设我得到了表中最后一个id为5的用户。但是,有人删除了它,第二天我和一个新用户一起做了一个新项目。现在下一个id将是id 6。但根据我的代码,它在projects_table中反映了5,而在users_table中则变成了6。

我想知道是否有人可以建议我使用一个功能来获得正确的id?

获取最后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的连锁反应,因为他总是有1个差异。我想让这一切变得不可能。

如果您试图获取新创建记录的ID,请尝试:

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