如何以编程方式创建角色?


10

如何以编程方式创建角色?

我在这里做错了什么?

$role = \Drupal\user\Entity\Role::create(['id' => 'client', 'name' => 'Client']);
$role->save(); 

我更新了答案;-)
Adrian Cid Almaguer 2015年

@AdrianCidAlmaguer:我将编辑答案以也包含那些PHP版本注释(5.6、5.5.9,drupal 8等)……将使您的答案更易于理解。但是,当然,那是您的选择……
Pierre.Vriens

@ Pierre.Vriens如果要编辑答案,我不知道哪个答案,因为这里只有一个,但是如果要编辑我的答案,请继续。
阿德里安·西德·阿尔玛格

Answers:


17

问题在于数据数组通过标签更改名称

$role = \Drupal\user\Entity\Role::create(array('id' => 'client', 'label' => 'Client'));
$role->save(); 

或者您可以使用:

//your data array
$data = array('id' => 'client', 'label' => 'Client');
//creating your role
$role = \Drupal\user\Entity\Role::create($data);
//saving your role
$role->save();

非常感谢您,我会尽力告诉您的。嗯,我觉得Drupal 8让您这样返回数组但不通过它们却很奇怪……。没关系,仍在学习Drupal 8的欢呼!!!
杰克·莱西2015年

1
阿德里安(Adrian)刚刚将行分隔开来,以便评论可以向您显示@Jake发生了什么,通常您最初提出的问题的一线都很好
克莱夫(Clive)

1
哦,我误会了,没有看到答案的第一个修订版-@Jake,只要您使用> = php5.4,短数组语法就可以工作(Drupal不会改变php本身的工作方式)
Clive

2
@Adrian Drupal 8不适用于php <5.6;)
alexej_d

1
@JakeLacey在您的项目中感到荣幸和幸运;-)
Adrian Cid Almaguer 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.