我有一个如下的routes文件,并收到一条错误消息,提示“ ccYear应该是字符串”。也许我没有遵循实现,但是我期望的是我有几个route.add(...),并且我在第二个参数中输入的内容都将被匹配,以查看传入的路由是否与带有正则表达式的参数匹配比较。找到一个(按添加顺序)后,该路由将执行到/ pages / {third parameter}。
我有两个问题。首先,如果我只有一条路线
routes.add("r1","/session/:ccYear([0-9][0-9][0-9][0-9])/sort/title","sessionPageByTitle");
我收到错误消息“ ccYear归为字符串。我的URL是/ session / 2018 / sort / title
第二个问题是,当我有多路路由添加时,我没有处理第一个匹配的路由。我收到404或此ccYear错误。这是添加的顺序
routes.add(
"sessionWithYearSlug",
"/session/:ccYear([0-9][0-9][0-9][0-9])/:sessionSlug",
"sessionPageDetail"
);
routes.add(
"sessionWithYearSortTimeRoute",
"/session/:ccYear([0-9][0-9][0-9][0-9])/sort/time",
"sessionPageByTime"
);
routes.add(
"sessionWithYearSortTitleRoute",
"/session/:ccYear([0-9][0-9][0-9][0-9])/sort/title",
"sessionPageByTitle"
);
routes.add(
"sessionWithJustYearRoute",
"/session/:ccYear([0-9][0-9][0-9][0-9])",
"sessionPageByTitle"
);
routes.add(
"sessionWithJustYearRoute",
"/session/:ccYear([0-9][0-9][0-9][0-9])",
"sessionPageByTitle"
);
routes.add("sessionWithNoParamsRoute", "/session", "sessionPageByTime");
routes.add(
"sessionSortByTitleRoute",
"/session/:ccYear/sort/title",
"sessionPageByTitle"
);
routes.add(
"sessionSortByTimeRoute",
"/session/:ccYear/sort/time",
"sessionPageByTime"
);
答案 0 :(得分:0)
关于第一个问题,您可以删除ccYear的正则表达式,
routes.add(
"sessionWithYearSlug",
"/session/:ccYear/:sessionSlug",
"sessionPageDetail"
);
将其保留为字符串,如果用户输入错误的年份,它将自动重定向到404页面。
对于第二个问题,我仍然不确定发生了什么,请提供更具体的错误消息。