在laravel中注册用户时,如何在userrole表中保存用户ID和角色ID?

Ana*_*ali 0 laravel

我有一个角色表,用户表和users_role表。我要在注册用户时存储user_id和role_id。注册用户时,角色应为1。我怎样才能做到这一点?

角色表

public function up()
{
    Schema::create('roles', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->timestamps();
    });
}
Run Code Online (Sandbox Code Playgroud)

用户表

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->string('image')->nullable();
        $table->boolean('status')->default(0);
        $table->rememberToken();             
        $table->timestamp('email_verified_at')->nullable();           
        $table->softDeletes();
        $table->timestamps();
    });
}
Run Code Online (Sandbox Code Playgroud)

UserRoles表

public function up()
{
    Schema::create('users_role', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('user_id');
        $table->foreign('user_id')->references('id')->on('users')- 
        >onDelete('cascade');
        $table->unsignedInteger('role_id');
        $table->foreign('role_id')->references('id')->on('roles')- 
        >onDelete('cascade');
        $table->timestamps();
    });
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以通过以下方式做到这一点:

$user = new User();
... insert data
$user->save();
$user->roles()->attach($roles);
Run Code Online (Sandbox Code Playgroud)

请参阅文档