0

Symfony 1.4 の管理者が生成したモジュールで使用しているパーシャルを持っていますが、アクションに残しておきたいロジックがいくつかあります。部分的にアクション変数にアクセスする方法はありますか? 通常のテンプレート (つまり、管理者によって生成されていないもの) では、自分のアクションで var を として宣言し$this->myVar、テンプレート内から としてアクセスできます$myVarが、管理者のパーシャルでこれを行う方法はありますか?

メソッドで宣言しようとしましたpreExecute()が、部分テンプレートで var が定義されていません。

私は何か間違ったことをしていますか、それともパーシャルの代わりにコンポーネントを使用する唯一の選択肢ですか?

4

2 に答える 2

1

このパーシャルを呼び出すときは、変数を 2 番目のパラメーター (またはパラメーターの配列) として include_partial() に入れてください。

于 2013-01-03T16:42:01.993 に答える
1

パーシャルとコンポーネントには、アクション変数への自動アクセスがありません。明示的に渡された変数のみが表示されます。管理ジェネレーター モジュールでは、通常、いくつかの有用なパラメーター (現在のオブジェクト、ヘルパー オブジェクト、構成、フォームなど) を取得しますが、現在の呼び出し場所によって異なります (cacheディレクトリ内の生成されたテンプレートを参照して、取得するパラメーターを確認できます)。 )。パーシャルは、すべてのテンプレート ファイルで使用できるいくつかのグローバル オブジェクト (リクエスト、ユーザー、レスポンスなど) にもアクセスできます。たとえば、リクエスト属性またはスロットを使用できます。

// in an action
$this->getResponse()->setSlot('my_slot', $myVariable);

// in a partial
<?php include_slot('my_slot'); ?>
// or
<?php $my_variable = get_slot('my_slot'); ?>

しかし、コンポーネントを使用する方が良い考えだと思います。

于 2013-01-03T22:32:29.980 に答える