我正在一个拥有大型postgreSQL数据库的项目中工作。之前的项目是从头开始用Java开发的。我们现在正在Laravel开发它。之前的系统user management
系统与Zizaco/entrust
类似。所以,我们也在我们的系统中使用过。上表中module
表使用了permission
表,而不是entrust
中使用的config/entrust.php
表。我们已经通过更改permission_name
中的表名来配置它。但是,之前的系统name
代替entrust
中使用的entrust
字段。如何配置permission_name
以使用唯一的name
代替sources
字段。
我正在寻找一个解决方案,因此我们不必更改entrust
$this->load->view()
,因为升级它会破坏系统。可以在模型中配置吗?
答案 0 :(得分:1)
Entrust包被硬编码以使用name
属性,因此没有配置值或任何可以更改它的内容。但是,您可以尝试的一件事是为name
属性定义一个访问器和更改器。
在App\Permission
模型中,定义以下功能:
class Permission extends Model {
// accessor
public function getNameAttribute($value) {
return $this->permission_name;
}
// mutator
public function setNameAttribute($value) {
$this->attributes['permission_name'] = $value;
}
}
访问者和变更者的文档:http://laravel.com/docs/5.0/eloquent#accessors-and-mutators