【问题标题】:Zend Framework 3 Rendering HTML For HTML EmailZend Framework 3 为 HTML 电子邮件渲染 HTML
【发布时间】:2018-02-16 03:31:18
【问题描述】:

有什么方法可以在控制器中获取视图的 html 内容吗? 我正在尝试从 ZF3 发送 html 电子邮件,但是,我还没有找到任何将 html 内容获取到控制器的方法。

我使用了控制器渲染方法,

$render = new PHPRenderer(); $render->render();

但是在上面的代码和加载视图之后代码停止执行。 我需要将 HTML 内容设置为电子邮件正文。

【问题讨论】:

    标签: php zend-framework zend-framework3 zend-view zend-servicemanager


    【解决方案1】:

    您只需要使用ViewRenderer 服务。因此,只需将此服务传递给您的控制器,然后在您想要呈现视图时调用它。

    示例: 我假设您的控制器名称是SendEmailController。所以在Factory你需要检索ViewRenderer服务,然后把它传递给控制器​​

    use Zend\ServiceManager\Factory\FactoryInterface;
    use Interop\Container\ContainerInterface;
    
    class SendEmailControllerFactory implements FactoryInterface
    {
        public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
        {
            $viewRenderer = $container->get('ViewRenderer');
            $sendEmailController = new SendEmailController($viewRenderer);
            return $sendEmailController;
        }
    }
    

    以及控制器中的代码

    use Zend\Mvc\Console\Controller\AbstractConsoleController;
    use Zend\View\Model\ViewModel;
    use Zend\View\Renderer\RendererInterface as RendererInterface;
    
    class SendEmailController extends AbstractConsoleController
    {
    
        protected $viewRenderer;
    
        /**
         * @param RendererInterface  $viewRenderer
         */
        public function __construct(RendererInterface $viewRenderer)
        {
            $this->viewRenderer = $viewRenderer;
        }
    
        public function exampleAction()
        {
            $view = new ViewModel();
            $view->setTemplate('path/to/template.phtml');
            $html = $this->getViewRenderer()->render($view);
            // @todo attach this $html to mail MimePart
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-20
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 2014-10-23
      • 2021-01-24
      相关资源
      最近更新 更多