3

ビューがあり、特定のビューに設定された変数をすべて表示したい場合、どうすればよいですか?

4

4 に答える 4

9

オブジェクトに割り当てられた変数は、Zend_View単にビューオブジェクトのパブリックプロパティになります。

特定のビューオブジェクトにすべての変数を設定する方法はいくつかあります。

ビュースクリプト内から:

$viewVars = array();

foreach($this as $name => $value) {
    if (substr($name, 0, 1) == '_') continue; // protected or private

    $viewVars[$name] = $value;
}

// $viewVars now contains all view script variables

Zend_Viewコントローラ内のオブジェクトから:

$this->view->foo = 'test';
$this->view->bar = '1234';

$viewVars = get_object_vars($this->view);
// $viewVars now contains all public properties (view variables)

最後の例は、を使用して手動で作成されたビューオブジェクトに対しても同様に機能します。$view = new Zend_View();

于 2012-09-24T19:08:06.590 に答える
7

よりエレガントな方法があります:$this->viewModel()->getCurrent()->getVariables();

ネストされた viewModel の場合:$this->viewModel()->getCurrent()->getChildren()[0]->getVariables();

于 2014-04-03T01:33:03.470 に答える
2
$this->view->getVars()

またはビュー内から

$this->getVars()
于 2014-06-06T17:27:17.100 に答える
1

私の場合、別のビュー内から部分ビューをロードする必要がありました。実際、これは非常に簡単でした。親ビューから子に変数を渡すことを心配する代わりに、単に親ビュー オブジェクトを渡します。

<?php echo $this->partial('my-view.phtml', $this); ?>
于 2014-05-07T16:51:19.033 に答える