https://github.com/ZF-Commons/zfc-rbacを私のモジュールに実装しようとしています。私は次の例外を取得するので、私は、こだわっている現時点では:ユーザー\エンティティ\ユーザーに渡さzendフレームワーク3のselectフォーム要素からDoctrine Collectionを取得する
引数1を:: setRoles()インタフェース教義\共通\コレクション\コレクション、配列を指定してを実装する必要があります... UserManagerクラスでエラーが発生し
ライン、:$user->setRoles($data['role']);
だから、それは明らかだ、エンティティのそのセッターは$data['role']
要素を返すSELECTタイプの間違ったか、フォーム要素です。セッターの
コード:ユーザーフォームでのselect要素の
public function setRoles(Collection $roles)
{
$this->roles->clear();
foreach ($roles as $role) {
$this->roles[] = $role;
}
}
コード:
$this->add([
'type' => 'DoctrineModule\Form\Element\ObjectSelect',
'name' => 'role',
'attributes' => [
'multiple' => true,
],
'options' => [
'object_manager' => $this->entityManager,
'target_class' => 'User\Entity\Role',
'label' => 'Role',
'value_options' => $roles,
'disable_inarray_validator' => true, //TODO: create validator
'required' => true,
],
]);
それでは、どのように杖は、私はselect要素が教義\共通\コレクション\コレクションを返す作りますか?
Doctrine名前空間からArrayCollectionを使用しようとしましたが、動作しませんでした。 Collectionインタフェースを実装する別のクラスを作成し、それをselect要素で使用する必要がありますか?あるいは、これを達成するためのより便利な方法がいくつかありますか?
私はまた、取り外した@varでエンティティで@param注釈や種類を試してみましたが、この場合には、私がメッセージ次持っている:タイプの
期待値「教義\共通\コレクション\コレクション|配列 "、関連フィールド" User \ Entity \ User#$ roles "、代わりに"文字列 "を取得しました。