Bagaimana cara membuat peran secara terprogram?

10

Bagaimana cara membuat peran secara terprogram?

Apa yang saya lakukan salah di sini?

$role = \Drupal\user\Entity\Role::create(['id' => 'client', 'name' => 'Client']);
$role->save(); 
Jake Lacey
sumber
Saya memperbarui jawaban saya ;-)
Adrian Cid Almaguer
@AdrianCidAlmaguer: Saya akan mengedit jawaban saya untuk memasukkan komentar versi PHP itu juga (5.6, 5.5.9, drupal 8, dll) ... Akan membuat jawaban Anda lebih mudah dicerna. Tapi tentu saja, itu pilihan Anda ...
Pierre.Vriens
@ Pierre.Vriens Jika Anda ingin mengedit jawaban Anda, saya tidak tahu jawaban mana, karena di sini hanya ada satu, tetapi jika Anda ingin mengedit jawaban saya, silakan.
Adrian Cid Almaguer

Jawaban:

17

Masalahnya adalah dalam perubahan nama array data dengan label :

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

Atau Anda dapat menggunakan:

//your data array
$data = array('id' => 'client', 'label' => 'Client');
//creating your role
$role = \Drupal\user\Entity\Role::create($data);
//saving your role
$role->save();
Adrian Cid Almaguer
sumber
Terima kasih banyak, saya akan coba ini dan beri tahu Anda. Hmm saya merasa sangat aneh bahwa Drupal 8 memungkinkan Anda mengembalikan array seperti itu tetapi tidak lulus mereka .... Sudahlah masih belajar sorakan Drupal 8 !!!
Jake Lacey
1
Adrian baru saja memisahkan garis-garis sehingga komentar dapat menunjukkan kepada Anda apa yang terjadi pada @Jake, biasanya satu-liner dari pertanyaan awal Anda akan baik
Clive
1
Oh saya salah paham, tidak melihat revisi pertama dari jawaban - @Jake, selama Anda menggunakan> = php5.4 sintaks array pendek akan bekerja (Drupal tidak mengubah cara kerja php itu sendiri)
Clive
2
@Adrian Drupal 8 tidak akan bekerja dengan php <5.6;)
alexej_d
1
@JakeLacey senang dan semoga sukses dalam proyek Anda ;-)
Adrian Cid Almaguer