0

Zend FormのviewScriptデコレータを使用してフォームにパーシャルを追加しようとしましたが、変数をパーシャルに渡すことができないようです。これが私のコードです:

コントローラに次のフォームを追加します。

$form = new Content_Form_ContentForm(array("categories" => $sortedCategories));
$form->submit_button->setLabel("Add content");
$this->view->form = $form;

次に、フォーム内にビュースクリプトを追加します。

public function setCategories($categories) {
    $this->setDecorators(array(array('ViewScript', array(
            'viewScript' => 'partials/dtreePartial.phtml',
            'List'=>"{$categories}",
    ))));
}

print_r($this->getDecorator('ViewScript')->getOptions());結果を使用してビュースクリプトのオプションを印刷しようとしましたが、Array ( [viewScript] => partials/dtreePartial.phtml [List] => Array ) すべてを実行すると、スクリプトはリストが存在しないというエラーを返します。

何かが足りないと感じていますが、それが何なのかわかりません。任意のアドバイスや解決策をいただければ幸いです!:)

4

1 に答える 1

1

問題はこの行にあります:

'List'=>"{$categories}",

変数を引用符で囲むため、文字列にキャストされます。PHPでは、配列を文字列にキャストすると、結果は常に単語になりArrayます。

次のように変更するだけです。

'List'=> $categories,

期待どおりに機能するはずです。

于 2012-07-16T18:12:44.920 に答える