php前缀路由器的,php – 使用前缀和Zend_Controller_Router_Route
在现有的Zend Framework网站上,几乎没有控制器,没有模块,我需要在默认路由中添加一些前缀.
例如,我目前有:
/products
/products/id/1
/training
/commonpage
我想添加一个产品线级别,而不会在x模块中复制我的控制器(我将使用_getParam请求我的控制器内的正确的产品线).
所以我的新路径将是:
/line1/products
/line1/products/id/1
/line2/training
/commonpage
我到目前为止所尝试的是这条路线(位于我的Bootstrap文件中):
protected function _initRoutes()
{
$router = Zend_Controller_Front::getInstance()->getRouter();
$router->addRoute('productLineRoute', new Zend_Controller_Router_Route(
':line/:controller/:action',
array('module' => 'default'),
array('line' => '(' . implode('|', Zend_Registry::getInstance()->constants->lines) . ')')
));
}
但没有任何成功(它给了我一个404).
在这些条件下,如何构建与所有uri匹配的单个路由:
> uri的前缀匹配我的产品线数组中的一个值
>该路由仅在允许以“产品线路”方式访问控制器的情况下才有效 – 通过包含我的控制器名称的数组,例如
UPDATE
好的,我设法真正接近我正在试图用这个代码:
protected function _initConstants()
{
$registry = Zend_Registry::getInstance();
$registry->constants = new Zend_Config( $this->getApplication()->getOption('constants') );
$uri = ltrim($_SERVER['REQUEST_URI'], '/');
$product_line = substr($uri, 0, strpos($uri, '/'));
if(!empty($product_line) && in_array($product_line, Zend_Registry::getInstance()->constants->lines->toArray()) &&
$product_line != Zend_Registry::getInstance()->constants->lines->get(0)) {
$registry->product_line = $product_line;
} elseif(!isset($registry->gamme)) {
$registry->product_line = Zend_Registry::getInstance()->constants->lines->get(0);
}
}
protected function _initRoutes()
{
$router = Zend_Controller_Front::getInstance()->getRouter();
$registry = Zend_Registry::getInstance();
$router->addRoute('productLineRoute', new Zend_Controller_Router_Route(
':line/:controller/:action/*',
array(
'module' => 'default', 'action' => 'index',
'line' => (isset($registry->product_line)) ? $registry->product_line : Zend_Registry::getInstance()->constants->lines->get(0)
),
array(
'line' => '(' . implode('|', Zend_Registry::getInstance()->constants->lines->toArray()) . ')',
'controller' => '(' . implode('|', array('products', 'training')) . ')'
)
));
}
有了我可以访问/ line1 / products但不是/ line1 / commonpage,这是我想要的 – 所以控制器约束是非常好的.您可以看到我在Zend注册表中添加产品线名称,所以当我在模板中使用URL View Helper时,它被保存(这样我就不必编辑我的所有模板来添加我的帮助器中的product line参数调用).
我现在的问题是关于这个帮助:似乎我的控制器约束只是被忽略.当我在我的模板中这样做:
My link
我结束了这个:
My link
所以添加了产品线,尽管事实上这不允许我的路由器的控制器约束.
php前缀路由器的,php – 使用前缀和Zend_Controller_Router_Route相关推荐
- TP5.1查询用Db('不含表前缀')/Db::name('不含表前缀')/Db::table('含表前缀')返回数组;model()返回对象
TP5.1查询用Db(('不含表前缀')/Db::name('不含表前缀')/Db::table('含表前缀')返回数组:model()返回对象 all():可直接传数组查询 select():传数组 ...
- 前缀和、二维前缀和与差分的小总结
在了解二维前缀和之前,我们首先需要了解一下什么是前缀和. 如果我给你一串长度为n的数列a1,a2,a3......an,再给出m个询问,每次询问给出L,R两个数,要求给出区间[L,R]里的数的和,你会 ...
- 网站服务器ip 前缀,如何查看ipv6地址前缀
如何查看 站点本地单播地址包含一个FEC0::/10 前缀.子网ID 以及接口ID.链路本地单播地址使用FE80::/ 10 前缀和一个接口ID. 介绍一些常用的地址前缀 ::/128 即0:0:0 ...
- OpenCV 笔记(04)— OpenCV2 升级到 OpenCV3/CV4 的改动(去掉 CV_前缀、使用新的前缀替换、使用新的命名空间宏)
1. 由于宏名称的变更照成的"未声明的标识符"系列问题 有时候,遇到此类问题加入一句 #include <cv.h> 便可以让 OpenCV3 或者 OpenCV4 也 ...
- LeetCode 208. 实现 Trie (前缀树) —— 提供一套前缀树模板
208. 实现 Trie (前缀树) Ideas 前缀树嘛,直接套模板咯,把之前写的拿过来抄一遍. 提供一下我的模板. Code Python class TrieNode:def __init__( ...
- trie树查找前缀串_Trie数据结构(前缀树)
trie树查找前缀串 by Julia Geist Julia·盖斯特(Julia Geist) A Trie, (also known as a prefix tree) is a special ...
- 【51nod - 1098】 最小方差(基础数学,公式化简,前缀和,积的前缀和)
题干: 若x1,x2,x3--xn的平均数为k. 则方差s^2 = 1/n * [(x1-k)^2+(x2-k)^2+--.+(xn-k)^2] . 方差即偏离平方的均值,称为标准差或均方差,方差描述 ...
- 【51nod - 前缀异或】 对前缀和的理解
题干: 前缀异或 基准时间限制:2 秒 空间限制:131072 KB 分值: 5 输入一个长度为n(1 <= n <= 100000)数组a[1], a[2], ..., a[n]. 输 ...
- php+redis+设置前缀,spring使用Redis自定义前缀后缀名(去掉SimpleKey []+自定义)
标签: spring中自动加上 SimpleKey [] 解决方案 一.自定义后缀名 1.定义类实现KeyGenerator接口 MyKeyGenerator package com.wbg.spri ...
最新文章
- 浅谈 Math.BigMul 方法
- java高级-多线程编程
- 基于事件的异步模式——BackgroundWorker
- 对select的结果进行count统计
- 目标检测系列(七)——CornerNet:detecting objects as paired keypoints
- Dijkstrala算法
- sqlserver数据库安装后服务配置
- Unity3D中的线性插值Lerp()函数解析
- Pytorch深度学习实战笔记
- 校园信息发布平台网站源码
- ES索引重建reindex详解
- 轻轻松松背单词软件测试,Englishfield词汇记忆与测试
- matlab 2014b 图像,使用Matlab 2014b的锯齿状轮廓
- 聊聊iClient for Leaflet坐标转换问题
- 物联网应用网站——设计报告
- [AssistantTool]_7_添加生成测试图的功能
- URL Extractor 4 for Mac(URL资源地址抓取器)特别版
- iphone手机safari浏览器访问网站滚动条不显示问题解决办法
- ORB-SLAM3 单目惯导ros-system-track
- 《生物信息学:导论与方法》--生物信息数据库及软件资源--听课笔记(二十二)