繁体   English   中英

在cakephp 3中,如何检查两个URL是否指向相同的控制器和动作?

How to check if two url point to same controller and action, in cakephp 3?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有这样的网址。 $myUrl = 'posts/index'; 而且我需要将此URL与传递给我的方法的另一个URL进行比较,以了解它们是否具有相等的控制器和动作。

public function compareUrls($url) {
    $myUrl = 'posts/index';
    //returns true if both urls point to the same controller and action otherwise returns false
}

传递的URL可以是cakephp中的任何合法URL。 例如:

$url0 = '/';//false
$url1 = 'posts';//true
$url2 = 'posts/index';//true
$url3 = 'en/posts/index/3/foo';//true
$url4 = ['controller'=>'posts' , 'action'=>'index'];//true
$url5 = ['controller'=>'posts' , 'action'=>'index' , 'p1' , 'p2'];//true

或者是其他东西。

1 个回复

您的功能可能是

public function compareUrls($urlString)
{
    $myUrlString = 'posts/index';
    $myUrl = Router::parse($myUrlString);
    $url = Router::parse($urlString);
    if ($myUrl['controller'] == $url['controller'] && $myUrl['action'] == $url['action']) {
        return true;
    } else {
        return false;
    }
}

Route :: parse可以做到。

示例: debug(Router::parse('/admin/users/index'))将返回

[
    'controller' => 'Admin',
    'action' => 'users',
    'pass' => [
        (int) 0 => 'index'
    ],
    'plugin' => null
]

请注意, Route :: parse仅用于字符串url,您需要在控制器中使用Cake\\Routing\\Router命名空间

2 如何在cakephp中设置控制器动作的URL?

我正在创建一个社交网站,其中每个个人资料页面都需要使用seo友好的URL进行显示。 现在就像www.siteprof.com/profile/23 我需要在此网址末尾添加aditioanl字符串“ jake-web-developer”。 结果将类似于www.siteprof.com ...

3 如何从CakePHP的URL中删除控制器和动作名称?

如何编写有效的router:connect以获得SEO友好链接? 在我的网站上,我有文章和类别。 在右侧栏中,文章的类别与下面的链接列出。 这给了我-http: //example.com/Articles/displayArticles/category-name之类的链接,现 ...

2014-08-25 03:56:54 1 1345   cakephp
5 cakephp被授权检查其他控制器动作内

假设我的控制器中有一个函数isAuthorized() ,用于检查用户是否有权执行控制器操作add和edit 。 现在假设我在控制器动作my_custom_action 。 如何使用以下命令检查用户是否有权执行控制器动作my_custom_action的add和edit动作: 谢谢 ...

9 两个Ajax链接在YII中触发相同的控制器动作

在我看来,我希望能够使用ajax删除和更新我的列表视图。 现在,如果另一个链接不存在,则两个链接都可以正常工作。 如果它们都在那,则两者都触发actionUpdate 。 有谁知道为什么不再执行删除操作? ...

10 如何使两个控制器在Angular中执行相同的动作,但更改网站的外观?

我想在Angular中复制Google的主页功能,这让我感到悲伤。 我浏览了Egghead视频并阅读了整个API,但是没有确切的示例。 我想要执行以下操作: 用户进入首页,显示主搜索栏和通用黑色标题栏 用户进行搜索,只有当他按下“搜索”按钮时,主搜索栏才会消失,URL更改为 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM