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 を渡す必要がありますが、私のようにフォームを設定するときにこれを行う場所がわかりません。前もって感謝します。