0

こんにちは、私は zend フレームワークの初心者です。グループとユーザーという名前の2つのモジュールを作成しました。ユーザー追加フォームにグループ ドロップダウンが必要なので、この値を取得する方法を教えてください。以下にファイル構造について言及しました

module
    -user
       -config
       -src
         -User
            - Controller
            - Form
            - Model
       -view
         -user
           - user
             - index.phtml
             - add.phtml
             - edit.phtml
     -group
       -config
       -src
         -Group
            - Controller
            - Form
            - Model
       -view
          -user
           - user
             - index.phtml
             - add.phtml
             - edit.phtml

ユーザー追加フォームにグループ ドロップダウン リストが必要です よろしくお願いします

4

1 に答える 1

1

以下に例を示します。

ロール サービスを作成して、使用可能なすべてのロールを取得します

public function toBasicArray($aI_roles = null){

    if ( $aI_roles == null ){
        $aI_roles = $this->getRoles();
    }

    foreach ($aI_roles as $role ){
        $as_roles[$role->getId()] = $role->getName();
    }
    return $as_roles;
}

public function getAvailableUserRoles(){
    $aI_roles = $this->I_roleRepository->getAvailableUserRoles();
    return $this->toBasicArray($aI_roles);
}

次に、このサービスを Role Module.php に登録します。

public function getServiceConfig() {

    return array(
        'factories' => array(
            'Users\Service\RoleService' => 'Users\Service\RoleServiceFactory'
        ),
    );

}

これで、アプリケーションのどこからでもこのサービスを呼び出すことができます。たとえば、私のユーザーコントローラーには、ユーザーロールを設定するための「ロール」という名前の選択オプションがあります。

public function __construct($I_userService, $I_roleService, $I_userForm) {
    $this->I_userService = $I_userService;
    $this->I_roleService = $I_roleService;
    $this->I_userForm = $I_userForm;
    $this->I_userForm->get('role')->setValueOptions($this->I_roleService->getAvailableUserRoles());
}

ユーザーフォームでは、選択オプションを次のように設定しました。

    $I_role = new Element\Select('role');
    $I_role->setLabel('Ruolo');
    $this->add($I_role);
于 2013-05-31T10:54:43.940 に答える