-1

asp.net mvc では、@Section {} のようなものを使用してビューでセクションを定義でき、レイアウトでそれらを使用して、情報を配置/表示することができます。zend フレームワーク mvc に相当するものはありますか? 例は素晴らしいでしょう。

4

1 に答える 1

1

ビューのパーシャルまたはプレースホルダーは、ASP.NET から参照しているセクションとほぼ同じです。

プレースホルダーのドキュメントには、カスタム サイドバー コンテンツをレンダリングする例も示されています。

ビュー ヘルパーを使用するには、ディレクトリにビュー スクリプトを作成views/scriptsし、拡張子を付けて名前.phtmlを付け、必要なコンテンツを配置します。

//application/views/scripts/sidebar.phtml
<div id="sidebar">
    Welcome <?php echo $this->username ?>
</div>

ビュー パーシャルのコンテンツを表示するレイアウトまたはビューでは、次のように呼び出します。

<?php echo $this->partial('sidebar.phtml', array('username' => 'drew010')) ?>

上記の呼び出しにより、username渡された変数を使用して sidebar.phtml がレンダリングされます。ビュー パーシャルには独立した変数スコープがあるため、変数を配列として渡し、パーシャル内で使用できます。

プレースホルダーの使用は似ていますが、プレースホルダーのコンテンツはさまざまな方法で設定できます。プレースホルダー コンテンツへのアクセスも若干異なります。

あなたが持っているあなたのレイアウトで言ってみましょう:

<?php /* output sidebar from placeholder value "sidebar" */ ?>
<?php echo $this->placeholder('sidebar'); ?>

プレースホルダーのコンテンツは、出力をキャプチャするビュー スクリプトをレンダリングするか、プレースホルダー自体に直接割り当てることによって設定できます。

コンテンツをプレースホルダーに割り当てる最も基本的な例は次のとおりです。

<?php
// from controller:
$this->view->placeholder('sidebar')->set('<div id="sidebar">content</div>');

プレースホルダーのマニュアルでは、プレースホルダーのコンテンツの割り当て、追加、先頭への追加、および管理方法について詳しく説明しています。

どちらも、ASP.NET のセクションを置き換える目的に適しているはずです。

于 2012-09-21T17:50:06.587 に答える