MySQL Laravel: 获取User::create的ID并使用该ID插入新的数据行


<!–

–>

MySQL Laravel: 获取User::create的ID并使用该ID插入新的数据行

在Laravel中,我们可以使用Eloquent ORM轻松地将数据插入到数据库中。但是,有时候我们需要获取刚刚插入的行的ID,以便在同一事务中添加其他数据。在这篇文章中,我们将讨论如何通过 Laravel获取User::create的ID,并使用该ID插入新的数据行。

阅读更多:

User模型

首先,我们需要在Laravel应用程序中定义一个User模型。我们可以使用以下命令生成一个User模型:

(adsbygoogle = window.adsbygoogle || []).push({});

 artisan make:model User

然后,我们可以在User模型中定义fillable属性,以明确指定哪些字段可以被批准提交。以下是一个示例User模型:

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $fillable = ['name', 'email', 'password'];
}

获取User::create的ID

要获取User::create的ID,我们需要使用Laravel提供的insertGetId方法而不是Create方法。以下是一个示例代码片段,展示如何插入新的用户记录并返回其最后插入的ID:

use App\User;

$user_id = User::insertGetId([
    'name' => 'John Doe',
    'email' => 'johndoe@email.com',
    'password' => bcrypt('password')
]);

在这个例子中,我们使用insertGetId方法传递一个关联数组,该数组包含要插入的用户的详细信息。insertGetId方法将返回新插入记录的ID。

使用获取的ID插入新行

一旦我们有了User::create的ID,我们就可以使用该ID向数据库中添加其他相关数据。以下是一个示例代码片段,展示如何使用User::create的ID向orders表添加新的订单记录:

use App\Order;

order = new Order(['user_id' =>user_id, 'product' => 'Example Product']);
$order->save();

在这个例子中,我们创建了一个新的订单对象并将从User::create获取的$user_id设置为其user_id属性的值。然后,我们通过调用save方法将新订单保存到数据库中。

总结

本文介绍了如何通过 Laravel获取User::create的ID,并使用该ID插入新的数据行。这对于在同一事务中添加具有密切关联的数据很有用。在编写Laravel应用程序时,确保查看Laravel文档以了解有关使用ORM的详细信息。

(adsbygoogle = window.adsbygoogle || []).push({});