私はビューからアプリケーションの設定にアクセスしたかったのです。 ZF 2でどのように達成できますか?Zend Framework 2(zf2)のビューからApplication Configにアクセスするには?
答えて
実際には、ビュー内でアプリケーション設定にアクセスする必要はありません。 MVCでは、データ(出力)の表示/レンダリングのみを担当し、ビジネスロジックやアプリケーションロジックは含まないビューです。
あなたが本当にあなたは、単にあなたのコントローラ内でこのような何かを表示するために渡すことができることをやりたい場合は:あなたのview.phtmlファイルにそう
<?php
namespace YourModule\Controller;
use Zend\View\Model\ViewModel;
// ...
public function anyAction()
{
$config = $this->getServiceLocator()->get('config');
$viewModel = new ViewModel();
$viewModel->setVariables(array('config' => $config));
return $viewModel;
}
// ...
?>
を。
<div class="foo">
...
<?php echo $this->config; ?>
...
</div>
あなたのコントローラにビジネスロジックを持たせるべきではありませんが、設定はまだレンダリング/表示ロジックに影響するかもしれません。設定値は、どのテーマをレンダリングすべきかをビューに伝えます。私は、ViewManagerにはグローバル設定をServiceManagerから引き出すビューではなく、ViewModelを使用して、可能な限り細かい設定値をビューに送信するコントローラでなければならないことにはまだ同意しています。 –
ビューヘルパーを作成する必要があります。
config.phpの
<?php
namespace Application\View\Helper;
class Config extends \Zend\View\Helper\AbstractHelper
{
public function __construct($config)
{
$this->key = $config;
}
public function __invoke()
{
return $this->config;
}
}
Module.phpまたはtheme.config.php
return array(
'helpers' => array(
'factories' => array(
'config' => function ($sm) {
return new \Application\View\Helper\Config(
$sm->getServiceLocator()->get('Application\Config')->get('config')
);
},
)
),
);
次にあなたが任意のビューで設定変数を使用することができます。 ZF 2.2.1、あなただけ...何も
# module.config.php
...
'view_helpers' => array(
'invokables' => array(
'yourHelper' => 'Application\View\Helper\YourHelper',
),
)、 を注入withtutあなたのヘルパーを追加することができます(つまり、以前のバージョンでは可能だと確信していない)
として
echo $this->config()->Section->key;
インタフェースZend\ServiceManager\ServiceLocatorAwareInterface
を実装してYourHelper
を書き込みます。インターフェースの2つのメソッド(単純なセッターとゲッター)を実装する必要があります。これで、サービスロケータにアクセスして、コンフィギュレーションを取得することができます:http://robertbasic.com/blog/working-with-custom-view-helpers-in-zend-framework-2
で
namespace Application\View\Helper;
class YourHelper implements Zend\ServiceManager\ServiceLocatorAwareInterface
{
public function __invoke()
{
$config = $this->getServiceLocator()->getServiceLocator()->get('Config');
// $config is the object you need
return $config;
}
public function getServiceLocator()
{
return $this->serviceLocator;
}
public function setServiceLocator(\Zend\ServiceManager\ServiceLocatorInterface $serviceLocator)
{
$this->serviceLocator = $serviceLocator;
return $this;
}
}
詳細情報設定にアクセスするためのヘルパーここhttps://gist.github.com/elvisciotti/6592837
私はコントローラプラグインやビューヘルパーでモジュールを作成しましたコントローラとビューの設定を読み込むためのものです。 GitHub link __ Composer link
あなたは簡単に使用できます。
echo $this->configHelp('key_from_config'); //read specific key from config
$config = $this->configHelp(); //return config object Zend\Config\Config
echo $config->key_from_config;
- 1. ZF2ルーティングはZend Frameworkの2では__NAMESPACE__
- 2. Zend Framework - ビューからビューヘルパーへのアクセス
- 3. Zend Framework 2:コントローラからモジュールのコンフィグレーション値にアクセスするには
- 4. ZF2:Zend Frameworkの2 - どのようにレイアウト
- 5. Zend Framework 2のビューフォルダの外に別のモジュールからビューをレンダリングするには?
- 6. Zend Framework 1 ini config for ACL
- 7. zend framework 2コンソールアプリケーションからデータベースにアクセスできない
- 8. Zend Framework 2のテストコンテキストでConfigsをConfigサービスに取得する方法は?
- 9. ZF2:Zend Framework 2ホスト名を含む完全なURL
- 10. Zend Frameworkの2、
- 11. zend framework 2 AuthenticationService
- 12. Zend Framework - あるビューから別のビューに変数をコピーする方法
- 13. Model内からZend \ Db \ Adapterインスタンスを取得するには? (ZF2)
- 14. zf2で1行の変数からデータにアクセスする
- 15. Zend Framework 1から2へのステップバイステップ
- 16. Zend Frameworkの2取得ルートからURL
- 17. Zend Framework 2モジュールからサブドメインへのマッピング
- 18. zf2 Zend \ ServiceManager \ Exception \ ServiceNotCreatedException
- 19. Zend Frameworkモジュールへのアクセス
- 20. Zend Framework 2 LDAP
- 21. Zend Framework 2 - filters
- 22. Zend Framework 2オートローディング
- 23. Zend Framework 2リダイレクト
- 24. Zend Framework 2パートルートアセンブリ
- 25. Zend Framework 2コンソールコントローラからbaseUrlを取得
- 26. Zend Frameworkの2ナビゲーションサブサブメニュー
- 27. Zend Frameworkの2 - URL
- 28. Zend Framework 2のキャッシング
- 29. Zend Framework 2のMultiSelect
- 30. ZF2 phpunit Zend Logger
コントローラアクションから渡しますか?そうでない場合は、この例とほぼ同じ方法でビューヘルパーを作成し、設定を挿入してください。http://stackoverflow.com/questions/16082529/calling-a-method-in-model-from-layout-in-zendframework- 2/16082884#16082884次に、必要なものにアクセスするヘルパーメソッドを記述します。 – Crisp
ビューヘルパーからどのようにアクセスできますか? –
リンク先の例を見てください。 'ModelService'を' config'に置き換えて、プロキシがConfig配列にヘルパーを持っています。次に、配列にアクセスするヘルパーのためのメソッドを記述し、それらをビューで呼び出すだけです。 – Crisp