我已经在考虑开始使用简单的GET字符串了。
或者我不太擅长配置路线? :)
在.htaccess
中通过正则表达式配置路由foreach($links as $a)
{
$Router->addRoute($a['link'],
new Zend_Controller_Router_Route(
$a['link'] . '/:page/:ad_id/:photo/:price_from/:price_to/:regions/:rajoni/:towns/:pagasti/:gadi_from/:gadi_to/:augums_from/:augums_to',
array
("page" => 1,
"ad_id" => 0,
"photo" => 0,
"price_from" => 0,
"price_to" => 0,
"regions" => 'def',
"rajoni" => 'def',
"towns" => 'def',
"pagasti" => 'def',
"gadi_from" => 'def',
"gadi_to" => 'def',
"augums_from" => 'def',
"augums_to" => 'def',
"department" => $a['department'],
"category" => '',
"link" => $a['link'],
"controller" => "ads",
"action" => "view",
)));
}
请帮我找到使用Zend Framework路由的正确方法
编辑后:
顺便说一句,是否可以循环通过类别来绑定路由到它们? 那么网址可能是人类可读的吗?
或者更好地坚持.htaccess文件配置?但我仍然没有想到,如何在不添加类别的数字的情况下制作人类可读的网址。
RewriteRule ^.*-d([0-9]+)/.*-c([0-9]+)/page-([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2&Page=$3 [L]
RewriteRule ^.*-d([0-9]+)/.*-c([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2 [L]
我想通过的唯一方法是将类别的实际名称作为值传递,在服务器端将其与类别名称数组进行比较。
还是有更好的方法?
答案 0 :(得分:0)
您是否使用此路线显示搜索结果?如果是这种情况,我强烈建议避免这种长度的路由 - 它们更难维护(尝试添加另一个参数) - 正常使用GET查询字符串。
结构类似于/ ads / view /:page /?ad_id = xxx& ...