gpt4 book ai didi

php - Cakephp 高级路由和分页

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:45:26 24 4
gpt4 key购买 nike

出于 SEO 目的,我必须将所有表单数据放入一个 URL。这是路由:

Router::connect('/liste-voitures/:marque/:modele/:categorie/:energie',
array(
'controller' => 'vehicules',
'action' => 'index',
),
array(
'pass' => array(
'marque',
'modele',
'categorie',
'energie'
)
)
);

因此在我的索引操作中,我构建了一个包含值的数组并将其传递给重定向函数以与路由匹配:

$urlbuilding = array(
'action' => 'index',
'marque' => 'volvo-3',
'modele' => 'C30-2',
'categorie' => 'citadine',
'energie' => 'diesel'
);
$this->redirect($urlbuilding);

访问 URL 时一切正常:

/liste-voitures/volvo-3/C30-2/citadine/diesel/

除了分页。页码指向 URL :

/vehicules/index/volvo-3/C30-2/citadine/diesel/page:2/sort:Vehicule.recommande/direction:desc

应该是

/liste-voitures/volvo-3/C30-2/citadine/diesel/page:2/sort:Vehicule.recommande/direction:desc

我试图通过设置分页选项来更改 url:

$this->Paginator->options = array(
'url' => array(
'action' => 'index',
'marque' => $this->request->params['marque'],
'modele' => $this->request->params['modele'],
'categorie' => $this->request->params['categorie'],
'energie' => $this->request->params['energie']
)
);

但它并没有更好地工作。

然后我尝试添加带有通配符的路由:

Router::connect('/liste-voitures/:marque/:modele/:categorie/:energie/*',
array(
'controller' => 'vehicules',
'action' => 'index',
),
array(
'pass' => array(
'marque',
'modele',
'categorie',
'energie',
'page',
'sort',
'direction'
)
)
);

但它没有用。而且我还没有尝试让页面、排序和方向值更漂亮

/liste-voitures/volvo-3/C30-2/citadine/diesel/2/Vehicule.recommande/desc

...但这将是我的下一步 ;)

如果我做错了什么,有人会介意告诉我吗?距离我上次有推进这个项目的感觉已经有好几天了。如果有人能以正确的方式开车送我,我将不胜感激! :)

最佳答案

SEO url 和 Cakephp 分页 url 是一枚硬币的两个不同面!

对于 url 使用您自己的逻辑并将参数传递给分页设置,在您的 View 中您可以创建 seo 友好的 url 并且将能够使用 cakephp 的分页器组件。

Router::connect('/liste-voitures/:marque/:modele/:categorie/:energie/:page/:sort/:direction',
array(
'controller' => 'vehicules',
'action' => 'index',
),
array(
'pass' => array(
'marque',
'modele',
'categorie',
'energie',
'page',
'sort',
'direction'
)
)
);

这应该是您的路由并使用您自己的逻辑来创建分页 url,不要使用分页助手。

关于php - Cakephp 高级路由和分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22554580/

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