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

标签 php cakephp cakephp-1.3

我阅读了教程,发现要使用“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/

相关文章:

php - 如何从数据库读取10000+字节[]的二进制数据?

php - 如何在 CakePHP 中通过 Ajax 处理类似测验游戏的表单/数据?

javascript - 如何使用 php 在我的网页中使用动态数据绘制和显示图形

php - 更新数据后重定向

php - 如何从文件夹和数据库中删除图像

php - 性能请求 PHP

php - 拍摄数据库表行的快照?

PHP - 如何在 CakePhp 中获取插入记录的 id

facebook - 使用 POST to Facebook Graph API 在墙上帖子中标记人员

cakephp - Linux环境下如何烘焙蛋糕 - Cakephp