2015-05-04 52 views
0

我正在一个拥有大型postgreSQL数据库的项目中工作。以前的项目是从头开始用Java开发的。我们现在正在Laravel开发它。以前的系统有user management系统类似于Zizaco/entrust。所以,我们也在我们的系统中使用。上表中有module表,而不是entrust中使用的permission表。我们已经通过更改config/entrust.php中的表名来配置该表。但是,以前的系统有permission_name而不是name字段中使用entrust。如何配置entrust以使用唯一的permission_name而不是name字段。使用Zizaco的`name`字段的自定义名称/委托包

我正在寻找解决方案,以便我们不必更改entrustsources,因为随后升级它会破坏系统。它可以在模型中配置吗?

回答

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