gpt4 book ai didi

zend-framework - Zend Framework 中国家、省、市、产品的路由

转载 作者:行者123 更新时间:2023-12-04 04:34:32 26 4
gpt4 key购买 nike

此 url 结构是为 SEO 优化而提出的。所以建议另一种结构是行不通的。建议的结构是

example.com/<language>/<country>/<province>/<city>/<product>

example.com/en/spain我想指出 CountryController indexAction , 由于每个人的看法不同,有时认为布局也有变化。

以英语显示有关国家西类牙的内容。并请求 example.com/en/india应该用英语和 example.com/es/spain 显示印度应显示西类牙国家/地区的西类牙文页面。

example.com/en/spain/barcelona指向 CountryController provinceAction

西类牙巴塞罗那省英语内容页面。

example.com/en/spain/barcelona/barcelona指向 CountryController cityAction

西类牙国家/地区巴塞罗那省巴塞罗那市的英语内容页面。

example.com/en/spain/barcelona/barcelona/taxis指向 CountryController productAction

西类牙国家/地区巴塞罗那省巴塞罗那市的英语产品内容页面。

是的,我们可以添加一条路线

$router = $ctrl->getRouter();
$router->addRoute(
'country_spain',
new Zend_Controller_Router_Route('spain',
array('controller' => 'country',
'action' => 'index'))
);

但在这种情况下,我们需要将整个国家列表添加到 route 。即印度、中国、巴基斯坦、美国等。

然后将添加country_province

$router = $ctrl->getRouter();
$router->addRoute(
'country_spain_barcelona',
new Zend_Controller_Router_Route('spain',
array('controller' => 'country',
'action' => 'province'))
);

因此,如果我们有 50 个省份,那么将国家/地区的数量乘以国家/地区的省份数量将是可怕的,并且在移动到城市和产品时,这将成为更多路线。

你可以说添加类似的东西

$router = $ctrl->getRouter();
$router->addRoute(
'country',
new Zend_Controller_Router_Route('country/:country/:province/:city/:product',
array('controller' => 'country',
'action' => 'index'))
);

但在这种情况下,我们将指向相同的操作,但随着请求的 View 发生变化,这将成为一个胖 Controller 。

Zend_Controller_Router_Route_Regex 的问题我们应该有类似的东西吗 example.com/en/country/spain/barcelona/barcelona/taxis并且所有 Action 都变成了一个 Action 。由于 View 完全不同,它变得肮脏。可能是我可以使用的部分。但我想知道是否有另一个好的解决方案来解决这个问题。这是一个遗留项目,所以我对它有限制,#ZF 版本是 1.6。

有一个类似的例子

http://www.travelportal.info/http://www.travelportal.info/asia http://www.travelportal.info/asia/indiahttp://www.travelportal.info/asia/india/business-currency-economy

你怎么看,他们这样做了,他们会至少增加亚洲、欧洲的航线吗?

我能够让它像

example.com/en/spain指向 CountryController indexAction

example.com/en/spain/barcelona指向 CountryController provinceAction

example.com/en/spain/barcelona/barcelona指向 CountryController cityAction

example.com/en/spain/barcelona/barcelona/taxis指向 CountryController productAction

但是我需要添加 4 条路由,这样手动添加路由会变得很困难。

欢迎大家提出建议和批评,让它变得更好。

最佳答案

您似乎希望为每个示例场景使用单独的路线,例如:

$router->addRoute(
'product',
new Zend_Controller_Router_Route(':lang/:country/:province/:city/:product', array(
'controller' => 'country',
'action' => 'product'
))
);

$router->addRoute(
'city',
new Zend_Controller_Router_Route(':lang/:country/:province/:city', array(
'controller' => 'country',
'action' => 'city'
))
);

$router->addRoute(
'province',
new Zend_Controller_Router_Route(':lang/:country/:province', array(
'controller' => 'country',
'action' => 'province'
))
);

$router->addRoute(
'country',
new Zend_Controller_Router_Route(':lang/:country', array(
'controller' => 'country',
'action' => 'index'
))
);

关于zend-framework - Zend Framework 中国家、省、市、产品的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9127873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com