1

我正在尝试为要在 Zend 中发送的电子邮件创建正文变量。我能够加载部分并将其传递给我的模型,然后将其打包并在途中发送。我遇到的问题是我想将 $buyer 传递到部分中,以便使用发布信息来填充电子邮件。

$buyer 包含我所有的帖子数据。所以我在该变量中拥有姓名、地​​址、电话号码和其他信息。$body2 只是一个简单的 HTML 脚本,我希望能够在通过电子邮件发送之前填充来自 $buyer 的信息。

// Get the Post Data
$buyer = $request->getPost();
// Creates the body for the email with the users information
$body2  = $this->view->partial('partials/enterpriseContact.phtml');

我试着做 -

$body2 = $this->view->partial('partials/enterpriseContact.phtml', $buyer);

但这没有用。如果这有所作为,我正在控制器内部工作。完整的代码块看起来如此 -

// Get the Post Data
$buyer = $request->getPost();
// Create the body variable by loading the partial for the post card.
$body   = $this->view->partial('partials/postcardEmail/eform1stpostcard.htm');
// Creates the body for the business email with the users information
$body2  = $this->view->partial('partials/enterpriseContact.phtml');
// New Model For Mail Client
$mailUs = new Model_MailUs(); // Instantiate the model to handle Emails
// Use that model to send the email, requires variables, who to send to, and body
$mailUs->sendMail($request->getPost(),  'guest',    $body);  // Sends an email to the user
$mailUs->sendMail($request->getPost(),  'link',  $body2); // Sends an email to us

如何将变量放入 Zend 控制器的部分变量中?

4

2 回答 2

4

原则上,您应该能够使用:

// in controller or do this all the way back at bootstrap
$this->view->partial()->setObjectKey('mykey');

// in controller
$renderedContent = $this->view->partial('path/to/partial.phtml', $someData);

然后在部分本身:

<?php 
$someData = $this->mykey
// now use $someData as you like
?>

但是,坦率地说,我通常最终会做更冗长的事情:

// In controller
$renderedContent = $this->view->partial('path/to/partial.phtml', array(
    'mykey' => 'myval',
));

然后在部分:

<?php echo $this->mykey ?>
于 2013-01-03T16:49:27.437 回答
1
$body2  = $this->view->partial('partials/enterpriseContact.phtml', array('buyer' => $buyer));

您必须使用单词数组,然后如上所述将变量集合设置为部分。然后我可以通过在我的部分输入 echo $this->buyer 来访问变量。

于 2013-01-03T16:45:49.927 回答