首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >自定义url处理程序在仍由正确的操作处理时返回404

自定义url处理程序在仍由正确的操作处理时返回404
EN

Stack Overflow用户
提问于 2018-08-15 08:43:59
回答 1查看 27关注 0票数 1

我有一个处理URL的动作details

代码语言:javascript
代码运行次数:0
运行
复制
something/details/Location/6

这个可以很好的工作。但是我想把额外的细节放在最后,基本上是为了搜索引擎优化。

我的routes.yml中有:

代码语言:javascript
代码运行次数:0
运行
复制
---
Name: mysiteroutes
---
Director:
  rules:
    'something//$Action/$Location/$OtherID': 'SomeController'

在我的控制器中:

代码语言:javascript
代码运行次数:0
运行
复制
private static $url_handlers = array(
    'something//$Action/$Location/$OtherID' => 'handleAction'
);

如果我转到上面的renderWith(),它可以工作,但是如果我转到something/details/Location/6/test,它会返回404,即使操作仍在加载并通过URL返回自身

我怎么才能让它工作呢?我也不关心ID之后的细节。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 09:11:48

我想你终于可以添加更多的参数了

代码语言:javascript
代码运行次数:0
运行
复制
---
Name: mysiteroutes
---
Director:
  rules:
    'something': 'SomeController'

和你的控制器

代码语言:javascript
代码运行次数:0
运行
复制
private static $allowed_actions = array('details');
private static $url_handlers = array(
    'details/$Location/$OtherID/$otherParam' => 'details'
);
public function details() {
    $this->getRequest()->param('otherParam');
    /* more processing goes here */
}

更多信息https://docs.silverstripe.org/en/3/developer_guides/controllers/routing/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51851481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档