元の投稿を編集して、より明確にします。ここで、純粋な構文であると私が信じる新しい問題領域があります。
OOP と Zend Framework 2 は初めてです。パーシャルの使用法を理解しようとしています。私はまた、他の誰かによって最初に開始されたアプリケーションを拡張しています。そのため、エンティティ/ゲートウェイ/コントローラー/ビューの命名規則により、指定されたアクションに対して正しいテンプレートが返されることが保証されます。
「partial('/nav/index.phtml');」を使用しようとしています。インデックス ページのヘッダーに 1 つのスニペットを挿入する方法として。しかし、他のページで別のパーシャルを使用したいと考えています。
マーシャルの提案に従って、TemplateController で、ナビゲーションに使用する部分を指定する変数 (nav_template) を viewModel に追加しています。
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class TplController extends AbstractActionController
{
public function topicAviewAction()
{
$viewModel = new ViewModel();
$viewModel->setTerminal(true);
$viewModel->setVariable('nav_template', 'nav/topica.phtml');
return $viewModel;
}
public function topicBviewAction()
{
$viewModel = new ViewModel();
$viewModel->setTerminal(true);
$viewModel->setVariable('nav_template', 'nav/topicb.phtml');
return $viewModel;
}
}
以下のコマンドを使用して、変数がオブジェクトに含まれていることを確認しました。
echo $viewModel->nav_template;
ただし、次を使用して、部分を layout.phtml に含める場合:
<?php echo $this->partial(isset($nav_template) ? $nav_template : 'nav/index'); ?>
$nav_template の値を使用/検索していないことは明らかです。どこで私は間違えましたか?