4

zf2 CMS アプリケーションに、サービスによって入力された標準の選択リストと、サービスによって入力された特注のフォーム要素を含むフォームがあります。フォームは、Module.php のファクトリ コールを使用してセットアップされます。

public function getServiceConfig()
{
    return array(
            'factories' => array(
                'ElmContent\Form\WebpageForm' => function ($sm) {
                    $service1 = $sm->get('parentPagesService');
                    $service2 = $sm->get('categoryService');
                    $form    = new Form\WebpageForm;
                    $form->setService($service1, $service2);

                    return $form;
                },

categoryService は、特注のフォーム要素 (別のテーブルからのカテゴリのリスト) を入力するために使用されます。CMS でページを編集している場合、カテゴリのリストを作成しているときに、別のテーブルを参照して、どのテーブルを参照するかを確認します。これを行うには、URL からページ ID を渡す必要があります。

http://cms.local/pages/edit/100 100 はページ ID で、categoryService に渡すことができます。

$this->getCategoryAssociationsTable()->findByPageId(100);

必要に応じてさらに多くのコードを提供できますが、基本的には 2 つのフォーム要素に db テーブルのデータが入力されるため、ファクトリ コールを使用してセットアップします。以前に選択されました。これを行うには、url から pageId を渡す必要がありますが、私のようにフォームを設定するときにこれを行う場所がわかりません。前もって感謝します。

4

1 に答える 1