プログラムでロールを作成するにはどうすればよいですか?


10

プログラムでロールを作成するにはどうすればよいですか?

ここで何が悪いのですか?

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

私は私の答えを更新します;-)
Adrian Cid Almaguer

@AdrianCidAlmaguer:これらのPHPバージョンのコメント(5.6、5.5.9、drupal 8など)も組み込むように回答を編集します...回答を簡単に消化できるようにします。しかし、もちろん、それはあなたの選択です...
Pierre.Vriens

@ Pierre.Vriens回答を編集したい場合、ここには1つしかないのでどちらの回答かわかりませんが、私の回答を編集したい場合は先に進んでください。
Adrian Cid Almaguer 16

回答:


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では配列をそのまま返すことができるが、渡さないのはかなり奇妙だと思います。
ジェイクレイシー

1
エイドリアンが行を分離したので、コメントは@Jakeで何が起こっているかを示すことができます。通常、元の質問のワンライナーで問題ありません
Clive

1
ああ、私は誤解しました。回答の最初のリビジョン-@Jakeが表示されませんでした。> = php5.4を使用している限り、短い配列構文が機能します(Drupalはphp自体の動作を変更しません)
Clive

2
@Adrian Drupal 8はphp <5.6では動作しません;)
alexej_d

1
@JakeLaceyプロジェクトでの喜びと幸運;-)
Adrian Cid Almaguer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.