gpt4 book ai didi

php - CakePHP -/admin/的管理路由,但不是所有其他路由(设置默认管理为 false 的方法?)

转载 作者:可可西里 更新时间:2023-11-01 00:17:02 25 4
gpt4 key购买 nike

我阅读了教程,发现要使用“admin”前缀,您只需取消注释:

Configure::write('Routing.prefixes', array('admin'));

config/core.php 文件。

我做到了,我的管理路由工作得很好 -/admin/users/add 命中了我的 users_controller 中的 admin_add() 函数。

问题是 - 它也改变了我的正常链接 - 即。我的“注销”按钮现在尝试转到/admin/users/logout,而不仅仅是/users/logout。我意识到我可以添加 'admin'=>false,但我不想为我网站中的每个链接都这样做。

有没有办法让它只有带有 'admin'=>true 或/admin/... 的 url 才能转到管理员,而不是所有其他链接?

最佳答案

扩展用户 Abba Bryant 的编辑,看看如何在 cooking 书中创建助手:http://book.cakephp.org/view/1097/Creating-Helpers

如果必须在所有链接上手动禁用路由很烦人(对我来说就是这样!),您可以创建一个新的助手 MyCustomUrlHelper(名称不必那么长当然),并让它使用核心 UrlHelper 为您生成 URL。

class MyCustomUrlHelper extends AppHelper {
public $helpers = array('Html');

function url($controller, $action, $params ,$routing = false, $plugin = false) {
//Example only, the params you send could be anything
$opts = array(
'controller' => $controller,
'action' => $action
//....
);

}

//another option

function url($params) {
//Example only, the params you send could be anything
$opts = array(
'controller' => $params['controller'],
'action' => $params['action']
//....
)
}

//just fill up $opts array with the parameters that core URL helper
//expects. This allows you to specify your own app specific defaults

return $this->Html->url($opts); //finally just use the normal url helper
}

基本上,您可以根据需要使它变得冗长或简洁。它只是实际 URL 助手的包装类,它将从内部完成工作。这允许您提供适用于您的特定应用程序的默认值。这也将允许您在一个地方进行更改并更新整个应用程序的路由。

编辑

您还可以检查传递的 $opts 数组是否为字符串。这样您就可以两全其美。

关于php - CakePHP -/admin/的管理路由,但不是所有其他路由(设置默认管理为 false 的方法?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554051/

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