我需要在网址中包含语言参数和slug的路由。
即http://localhost/demo/eng/home
这里“eng”是语言名称,“home”是slug名称。
我在route.php中完成了以下代码
var $$ = Dom7;
$$.ajax({
url: "http://query.yahooapis.com/v1/public/yql",
contentType: "OPTIONS",
crossDomain: true,
data: {
q: "select title,abstract,url from search.news where query=\"cat\"",
format: "json"
},
success: function( response ) {
alert( 'ok' );
alert( response );
}
});
同样在视野中
答案 0 :(得分:1)
您的路线存在冲突。
我猜您正在尝试将以下网址数组传递给HtmlHelper::link()
或HtmlHelper::url()
:
[
'controller' => 'homes',
'action' => 'view',
'language' => 'eng',
'slug' => 'press-release',
]
但是这个数组不仅匹配/:language/:slug/*
,还匹配/:language/:action/*
。因为包含language
和action
,slug
匹配*
作为命名参数。
并且/:language/:action/*
出现在您的routes.php中的/:language/:slug/*
之前。如果定义冲突路由,则第一个定义的路由具有更高的优先级。因此,您获得了网址/eng/view/slug:press-release
。
总之,/:language/:action/*
应该被移除,或者应该至少在/:language:/:slug/*
之后定义。