Zend framework 将变量传递到控制器中的部分

Zend framework 将变量传递到控制器中的部分,zend-framework,partial,Zend Framework,Partial,我正在尝试为我想在Zend中发送的电子邮件创建一个正文变量。我能够加载部分并将其传递给我的模型,然后在那里打包并发送。我遇到的问题是,我想将$buyer传递到partial中,以便使用post信息填充电子邮件 $buyer包含我的所有帖子数据。所以我有名字,地址,电话号码和其他信息在变量的旁边$body2只是一个简单的HTML脚本,我希望能够在发送电子邮件之前使用$buyer提供的信息填充它 // Get the Post Data $buyer = $request->getPost()

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

$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中控制器的分部中

$body2  = $this->view->partial('partials/enterpriseContact.phtml', array('buyer' => $buyer));
您必须使用单词数组,然后如上所述将变量集合设置为partial。 然后,我可以通过在我的部分列表中键入echo$this->buyer来访问变量

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

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

// 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
?>
然后在部分:

<?php echo $this->mykey ?>

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

// 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
?>
然后在部分:

<?php echo $this->mykey ?>


$this->view->partial('partials/enterpriseecontact.phtml',$buyer)是正确的。您是否进行过任何调试以查看
$buyer
是否确实是一个数组,或者在部分中测试它是否接收到一个变量?能否添加一个如何访问部分中变量的示例?我在部分中缺少数组('buyer'=>$buyer)。我在下面更新了。这取决于您如何访问分部中的数据,这应该不是必需的,因为$buyer已经是一个数组了。因此,如果您的post数据中有一个名为“name”的字段,则可以在您的部分日志中使用
$this->name
访问该字段。如果您在嵌套的数组中传递
$buyer
,那么它将是
$this->buyer['name']
。我甚至没有尝试打印$this->firstName。我没想到。你可能是对的!我正试图使用买家['name']访问它。啊<代码>$this->view->partial('partials/enterpriseecontact.phtml',$buyer)是正确的。您是否进行过任何调试以查看
$buyer
是否确实是一个数组,或者在部分中测试它是否接收到一个变量?能否添加一个如何访问部分中变量的示例?我在部分中缺少数组('buyer'=>$buyer)。我在下面更新了。这取决于您如何访问分部中的数据,这应该不是必需的,因为$buyer已经是一个数组了。因此,如果您的post数据中有一个名为“name”的字段,则可以在您的部分日志中使用
$this->name
访问该字段。如果您在嵌套的数组中传递
$buyer
,那么它将是
$this->buyer['name']
。我甚至没有尝试打印$this->firstName。我没想到。你可能是对的!我正试图使用买家['name']访问它。啊!我投票给这个答案,因为它比我的答案更好;它解释了这两种方法。我投票选这个答案,因为它比我的答案更好;它解释了两种方法。