gpt4 book ai didi

php - 如何在 laravel 5.3 eloquent 模型中定义关系?

转载 作者:行者123 更新时间:2023-11-29 20:13:56 25 4
gpt4 key购买 nike

我的数据库架构中有如下表,

enter image description here

它是数据透视表吗?

如何在 Eloquent 模型中定义关系?

    class Role extends Model {

public $timestamps = false;

public function permissions() {
return $this->hasMany('App\Models\RolePermission', 'permissions_id');
}

}

这是定义关系的正确方法吗?请帮助我理解。

    class RolePermission extends Model {

public $timestamps = false;

public function role() {
return $this->belongsTo('App\Models\Role', 'roles_id');
}

}

最佳答案

问题是您需要将表命名为 permission_role 以遵循设计编译指示。

角色架构

Schema::create('roles', function(Blueprint $table){
$table->increments('id');
$table->string('name');

$table->timestamps();
});

权限架构

Schema::create('permissions', function(Blueprint $table){
$table->increments('id');
$table->string('name');

$table->timestamps();
});

那么您只需要permission_role表:

Permission_Role架构

Schema::create('permission_role', function(Blueprint $table){
$table->increments('id');

$table->integer('permission_id')->unsigned();
$table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade');

$table->integer('role_id')->unsigned();
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
});

然后你只需像这样设置模型:

class Role {
public function permissions() {
return $this->hasMany(App\Permission::class);
}
}

当然还有你的权限类别

class Permission {
public function role() {
return $this->belongsToMany(App\Role::class);
}
}

关于php - 如何在 laravel 5.3 eloquent 模型中定义关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39921437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com