0

私はzendを使用しています。私は次のコードを持っています、

....
$cust = 'test@test.com';
$list.='Also Sent Mail to following members';
                foreach($m_list as $value)
                {
                $mail_to_manu = new Zend_Mail('utf-8');                    
                $mail_to_manu->clearFrom();                    
                $mail_to_manu->setBodyHtml('Text')
                ->setFrom('noreply@test.com', 'test admin')
                ->addTo($value['email'])
                ->setSubject('Test');
                $mail_to_manu->send();       
                $list.=$value['manufacturers_email'].'<br/>';
                } 
                $this->_helper->flashMessenger->addMessage('Mail send to '. $cust. ' Successfully'.$list);
        $this->_redirector->gotoUrl('/index');    
.....

途切れることなくメッセージが届きました。メッセージは次のようになります。

Mail send to test@test.com Successfully Also Sent Mail to following members some1@example.com some2@example.com...

私のメッセージは次のようになります。

 Mail send to test@test.com Successfully 
 Also Sent Mail to following members,
 some1@example.com
 some2@example.com
 ...

だから私は次々に休憩が必要です。フラッシュメッセンジャーでそれを行うことは可能ですか?はいの場合、親切なアドバイス。

4

2 に答える 2

0

strip_tagsビュースクリプトで使用しているもの、または類似のものを使用していますか?<br />タグが剥がれる可能性があります。

flashMessenger->addMessage()アドレスごとに1回呼び出すことで、複数のメッセージを追加することもできます。

$cust = 'test@test.com';
$this->_helper->flashMessenger->addMessage('Mail send to '. $cust. ' Successfully');
if(count($m_list)>0 )
    $this->_helper->flashMessenger->addMessage('Also Sent Mail to following members');
foreach($m_list as $value)
{
    $mail_to_manu = new Zend_Mail('utf-8');                    
    $mail_to_manu->clearFrom();                    
    $mail_to_manu->setBodyHtml('Text')
    ->setFrom('noreply@test.com', 'test admin')
    ->addTo($value['email'])
    ->setSubject('Test');
    $mail_to_manu->send();       
    $this->_helper->flashMessenger->addMessage($value['manufacturers_email']);
} 
$this->_redirector->gotoUrl('/index');    
于 2011-10-05T07:20:33.783 に答える
0

あなたの質問

すべてがひとまとめになっている理由は、echo追加のマークアップなしですべてをループに入れているからです。

次のようなものはどうですか:

foreach ($this->messages as $message)
{
    echo '<p class="message">' . $this->escape($message) . '</p>';
}

しかし、実際には、ビューで flashMessenger を処理するためのはるかに優れた方法があります。ご存知のように、Zend FlashMessenger はアクション ヘルパーです。ただし、メッセージを適切に出力するのに役立つ優れたビュー ヘルパーもあります。これについての最も良い点は、を渡すことができarray('warning' => 'This is a warning')、配列キー (警告) が<p>タグのクラスとして使用されることです。このヘルパーに関する情報は Carlton Gibson のブログで、追加の説明は SO question で見つけることができます。

変数の命名を改善する必要があります

  • $customerの代わりに、のような読み取り可能な変数名を書きます$cust。変数名を短くすることが無駄のないコードを書く手段だとは誰も言っていません;)。変数名を短くすることは悪いことです (コードの匂い)。コードが他の人や将来自分自身にとって読みにくくなるためです。
  • $mailToManufacturerアンダースコアを使用する代わりに、このような大文字小文字を使用します。これは一般的な合意 (標準) であるため、コードの読みやすさと理解にも適しています。
于 2011-10-05T10:16:09.280 に答える