1

私はzend 2スタディをやっています。ここで、flashMessenger ヘルパーをチェックアウトします。layout.php で flashMessenger を呼び出す方法が文書化されていないようです。レイアウトにある div ですべてのメッセージ (エラーまたは成功) を表示したいので、そこで flashMessenger を呼び出す必要があります。コントローラーのアクションを介して毎回メッセージを送信したくはありません。アクションだけでメッセージを追加し、レイアウトでそれらを表示したいだけです。

私はカスタムヘルパー/ライブラリを受け入れていますが、組み込みのソリューションが最適です。(私は zend 1 にもあまり取り組んでいないので、zend 1 でも簡単にできるかどうかはわかりませんでした。)

投稿を 1 つチェックアウトします。zend フレームワークのレイアウト ファイルで flashmessenger にアクセスするにはどうすればよいですか? しかし、それにはzend 1のカスタムソリューションがあります。したがって、1と2の両方でzendにソリューションがまったく組み込まれていないかどうかを考えています.

4

2 に答える 2

3

私は自分の簡単なviewhelperを書きました:

<?php

namespace My\View\Helper;

use Zend\View\Helper\AbstractHelper;

class FlashMessenger extends AbstractHelper
{
    protected static $_flashMessenger;

    public function __invoke($namespace = 'default') {

        if (!self::$_flashMessenger) {

            self::$_flashMessenger = new \Zend\Mvc\Controller\Plugin\FlashMessenger;
        }

        return self::$_flashMessenger->setNamespace($namespace);
    }
}

次のように使用します。

<? if ($this->flashMessenger()->hasMessages()): ?>
    <ul>
    <? foreach ($this->flashMessenger()->getMessages() as $message): ?>
        <li><?= $message></li>
    <? endforeach ?>
    </ul>
<? endif ?>
于 2012-08-30T20:00:50.620 に答える
0

Controller メソッドにこれを追加します

$this->flashMessenger()->addMessage('Your Flash message');

module/Application/view/layout/{your-layout.phtml} に次を追加します。

<div>
 <?php if ($this->flashMessenger()->hasMessages()): ?>
    <div class="alert alert-info">
        <?php foreach ($this->flashMessenger()->getMessages() as $message): ?>
            <?php echo $message; ?>
        <?php endforeach; ?>
    </div>
<?php endif; ?>

これはあなたの問題を解決するのに役立つと思います。

于 2016-08-01T14:59:24.810 に答える