PHP   发布时间:2019-11-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了模型视图控制器 – Zend Framework 2:查看匹配路线大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在通过开发一个基于骨架应用程序的小型MVC应用程序来学习ZF2.现在我试图根据匹配的路由隐藏一些固定的 HTML元素:就像一个例子,我不想在登录阶段显示主菜单.

我可以通过将toggle参数作为返回值从控制器动作中传递,但是它感觉不对,所以我只想从布局中检查匹配的路由,并相应地组成布局.

问题是,我不知道如何在模板中获得匹配的路由.这可能吗?是否有其他解决方案可以避免在控制器中添加布局逻辑

经过一些好的弗兰肯斯坦工作后,我可以找到解决办法.我喜欢使用一个帮手的想法,所以我刚刚尝试从主模块的boostrap函数传递它的Application对象:

$app = $e->getApplication();
$serviceManager = $app->getServiceManager();
....
$serviceManager->get('viewhelpermanager')->setFactory('getRoute',function($sm) use ($app) {
    return new Helper\GetRoute($app);
});

和助手功能:

use Zend\View\Helper\AbstractHelper;

class GetRoute extends AbstractHelper {
    private $sm;

    public function __construct($app) {
        $this->sm = $app->getServiceManager();
    }

    public function echoRoute() {
        $router = $this->sm->get('router');
        $request = $this->sm->get('request');

        $routeMatch = $router->match($request);
        if (!is_null($routeMatch))
            echo $routeMatch->getMatchedRouteName();
    }
}

也许有一个更清洁,更ZF2ish的方式来做到这一点…

解决方法

另一个解决方案没有新的匹配
$routeMatch = $serviceLocator->get('Application')->getMvcEvent()->getRouteMatch();

echo $routeMatch->getMatchedRouteName();

大佬总结

以上是大佬教程为你收集整理的模型视图控制器 – Zend Framework 2:查看匹配路线全部内容,希望文章能够帮你解决模型视图控制器 – Zend Framework 2:查看匹配路线所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: