脚本宝典收集整理的这篇文章主要介绍了php – 如何在ZF2中的控制台控制器中创建URL?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
'console' => array( 'router' => array( 'routes' => array( 'cronroute' => array( 'options' => array( 'route' => 'sendEmails','defaults' => array( 'controller' => 'Application\Controller\Console','action' => 'send-emails' ) ) ),) ) ),
在操作中,我想发送一封电子邮件,其中包含指向该网站上其他操作的链接.这通常使用URL View HelPEr来完成,但由于Request类型是Console而不是HTTP,因此不起作用.我试图创建一个HTTP请求,但我不知道如何给它站点域或Controller / Action链接.
我的控制器代码:
$vhm = $this->getServiceLocator()->get('viewhelpermanager'); $url = $vhm->get('url'); $urlString = $url('communication',array('action' => 'respond','id' => $id,array('force_canonical' => true));
这会引发错误:
====================================================================== The application has thrown an exception! ====================================================================== Zend\Mvc\Router\Exception\RuntimeException Request URI has not been set
如何在具有站点方案,域和路径/到/ action的控制台控制器中创建HTTP请求?我如何将其传递给URL View Helper?
<?PHP // Module.PHP use Zend\View\Helper\ServerUrl; use Zend\View\Helper\Url as UrlHelper; use Zend\Uri\Http as HttpUri; use Zend\Console\Console; use Zend\ModuleManager\Feature\ViewHelperPRoviderInterface; class Module implements ViewHelperProviderInterface { public function getViewHelperConfig() { return array( 'factories' => array( 'url' => function ($helperPluginManager) { $serviceLocator = $helperPluginManager->getServiceLocator(); $config = $serviceLocator->get('Config'); $viewHelper = new UrlHelper(); $routerName = Console::isConsole() ? 'HttpRouter' : 'Router'; /** @VAR \Zend\Mvc\Router\Http\TreeRoutestack $router */ $router = $serviceLocator->get($routerName); if (Console::isConsole()) { $requestUri = new HttpUri(); $requestUri->setHost($config['websITe']['host']) ->setScheme($config['website']['scheme']); $router->setRequestUri($requestUri); } $viewHelper->setRouter($router); $match = $serviceLocator->get('application') ->getMvcEvent() ->getRoutematch(); if ($match instanceof RouteMatch) { $viewHelper->setRouteMatch($match); } return $viewHelper; },'serverUrl' => function ($helperPluginManager) { $serviceLocator = $helperPluginManager->getServiceLocator(); $config = $serviceLocator->get('Config'); $serverUrlHelper = new ServerUrl(); if (Console::isConsole()) { $serverUrlHelper->setHost($config['website']['host']) ->setScheme($config['website']['scheme']); } return $serverUrlHelper; },),); } }
以上是脚本宝典为你收集整理的php – 如何在ZF2中的控制台控制器中创建URL?全部内容,希望文章能够帮你解决php – 如何在ZF2中的控制台控制器中创建URL?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。