使用正则表达式的 CakePHP 路由

2023-12-19

我有一个控制器设置来接受两个变量:/clients/view/var1/var2

我想将其显示为/var1/var2

所以我尝试过

Router::connect('/*', array('admin'=>false, 'controller' => 'clients', 'action' => 'view'));

但这就停止了all其他控制器作为/* routes 一切

该网站上的所有其他页面均在admin前缀所以基本上我需要一条如果当前前缀是则被忽略的路由admin!我尝试过这个(正则表达式来自正则表达式匹配不包含单词的行? https://stackoverflow.com/questions/406230/regular-expression-to-match-string-not-containing-a-word):

Router::connect('/:one', array('admin'=>false, 'controller' => 'clients', 'action' => 'view'), array(
    'one' => '^((?!admin).*)$'
));

但我认为正则表达式不正确,因为如果我导航到/test它要求测试控制器,而不是客户端

我唯一的其他路线是:

Router::connect('/admin', array('admin'=>true, 'controller' => 'clients', 'action' => 'index'));
Router::connect('/', array('admin'=>false, 'controller' => 'users', 'action' => 'login'));

我究竟做错了什么?谢谢。


我第一次误解了你的问题。我测试了你的代码,也没有得到预期的结果。原因可能是正则表达式解析器不支持否定前瞻断言。但我仍然认为你可以通过重新排序路线来解决这个问题:

The CakeBook描述了如果使用前缀路由会自动生成哪些路由 http://book.cakephp.org/1.3/view/950/Prefix-Routing。在您的情况下,必须在“/*”路由之前手动分配这些路由才能捕获所有管理操作。这是对我有用的代码:

// the previously defined routes
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/admin', array('controller' => 'clients', 'action' => 'index', 'admin' => true));

// prefix routing default routes with admin prefix
Router::connect("/admin/:controller", array('action' => 'index', 'prefix' => 'admin', 'admin' => true));
Router::connect("/admin/:controller/:action/*", array('prefix' => 'admin', 'admin' => true));   

// the 'handle all the rest' route, without regex
Router::connect(
    '/*', 
    array('admin'=>false, 'controller' => 'clients', 'action' => 'view'), 
    array()
);

现在,我获得了带有 admin 前缀的所有管理控制器操作,并且 /test1/test2 被重定向到客户端控制器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正则表达式的 CakePHP 路由 的相关文章

  • Rails 中的漂亮路径

    我有一个类别模型 我使用默认的脚手架来路由它resources categories 我想知道是否有办法改变路径 category id to category name 我补充道 match categories name gt cate
  • CakePHP Auth 组件使用 $this->Auth->login() 时未登录;

    我是 cakePHP 的新手 我已经阅读了他们的文档 并且正在遵循他们的简单身份验证示例 我还广泛搜索 包括本网站上的答案 来寻找我的问题的答案 我正在使用 cakePHP 2 0 我的 UsersController 的登录功能如下所示
  • 在 CodeIgniter 中添加新页面

    对于我对 CodeIgniter 和 MVC 系统的无知 我提前表示歉意 我正在帮助一位家庭成员处理他们的商业网站 到目前为止 我已经能够仅通过逻辑来完成大部分所需的更改 但现在我已经走进了死胡同 我不打算继续支持他们 因为我显然不是 Co
  • 禁用外部点击时关闭模式

    我正在制作一些使用模式的博客物质化 但我的模态 onclick 外部和错误数据有问题 这是我的代码 main js function changepassword var user userlog val var content conte
  • 使用 PHP 更新 XML 节点

    我有一个 XML 文件 test xml
  • Symfony 生成器形式、原则和 M:N 关系

    我有一个基本的 M N 设置 包含三个表 candidate position 和 Candidate position 这是 MySQL Workbench 的 ERD 屏幕截图 现在 我们继续讨论表单 在 symfony 生成器的默认世
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • 在 mysqli 准备好的语句程序风格中获取最后插入的 id 的正确方法是什么?

    我正在使用 mysqli 准备好的语句在表中插入记录 如下所示 link mysqli connect localhost my user my password world check connection if link printf
  • localhost/live - 通过 HTTP_HOST 检测

    假设我在本地开发并在实时服务器上调试小东西 在我的代码中添加这样的内容是个好主意吗 is local strpos SERVER HTTP HOST localhost false define DEBUG is local 然后在设置内容
  • 具有“日期之间”的 CakePHP 模型

    我有一个很大的数据集 超过十亿行 数据在数据库中按日期分区 因此 我的查询工具必须在每个查询上指定一个 SQL Between 子句 否则它将必须扫描每个分区 而且 它会在返回之前超时 所以 我的问题是 分区的数据库中的字段是日期 使用 C
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 细胞的 fpdf 对齐

    我正在尝试使用生成 PDFfpdf我有一个小问题 我需要有 2 个单元格 如下所示 Address Line 1 Version Address Line 2 1 0 City 06 05 2011 我尝试过使用MultiCell 但没有运
  • 将客户分配到 magento 的多个客户组

    您好 我想将多个组分配给特定客户 例如 Rajat 客户 属于 批发 零售商 电力 实际上我在上面看到了同样的话题每个客户有多个客户组 https stackoverflow com questions 6153011 multiple c
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的
  • PHP date() 和 strtotime() 返回错误的月份 31 日

    我在用着date and strtotime 函数在下拉列表中显示接下来的 3 个月 PHP代码 echo date m Y strtotime 0 months echo date m Y strtotime 1 months echo
  • Google Drive 服务帐户上传的位置

    我正在尝试使用服务帐户将文件上传到我的 Google 云端硬盘 当我部署此代码时 我不希望用户给予授权 我希望他们上传到我的帐户 我通过 PHP 使用它 下面是我到目前为止的情况 这段代码是基于官方文档给出的例子 当我运行 php 脚本时

随机推荐

  • Numpy 矩阵乘法广播

    我有一个由 N 个 3x3 数组 矩阵的集合 尽管数据类型为 np ndarray 组成的数组 还有一个由 N 个 3x1 数组 向量的集合 组成的数组 我想要做的是将每个矩阵乘以每个向量 所以我期望得到 N 个 3x1 数组 简单的例子
  • 在我的案例中,如何将一种布局嵌入另一种布局?

    如果我有一个名为底部 xml 底部 xml 请参阅此文档重用布局 http android developers blogspot com 2009 02 android layout tricks 2 reusing layouts ht
  • MVC 4 razor 数据注释只读

    ReadOnly 属性似乎不在 MVC 4 中 Editable false 属性不能按我希望的方式工作 有类似的东西有效吗 如果不是 那么我如何制作自己的 ReadOnly 属性 其工作方式如下 public class aModel R
  • 当前位置更改时 MKRoute 更新 MKPolyline Overlay

    我用谷歌搜索了很多 但无法让它发挥作用 在我的 MKMapView 中 我有一个自定义 MKAnnotationView 我可以将其放置在任何地方 还有代表我当前位置的点 我可以 显示方向 计算自定义注释和当前位置之间的 MKDirecti
  • 将 unique_ptr 与 gsl_vector 结合使用

    我最喜欢的方面之一unique ptr是它提供的自动内存管理 我想用unique ptr与 GSL 向量之类的东西 然而 gsl vector有自己的释放内存的机制 gsl vector free 有没有办法强制唯一指针使用GSL的向量释放
  • 为什么 iostream 在 MCU 上占用如此多的闪存空间?

    我使用 GCC 5 2 0 编译 EFM32 MCU 基于 Cortex M 内核 的代码 当我想要时 我注意到代码大小急剧增加 include
  • iOS UrlSession.shared.dataTask 删除 utf-8“+”字符并替换为“”

    我正在使用 x www form endoded 数据创建对 API 的登录调用 我在 Postman 中创建了一个 POST 并收到了 200 回复 我使用Postman的导出功能生成Android的OKHTTP代码和iOS的NSURL代
  • 如何找到堆栈深度?

    我想用单元格替换以下函数调用 参考 从 C 中的任何线程获取调用堆栈 https stackoverflow com questions 1310669 get call stack from any thread within c int
  • 使用 Apache PDFBox 在 PDF 中查找 javascript 代码

    我的目标是提取和处理 PDF 文档可能包含的任何 JavasCript 代码 通过在编辑器中打开 PDF 我可以看到如下对象 402 0 obj lt JavaScript JS n r n Set day 25 r n FormRoute
  • RStudio 服务器上的 R Shiny 开发应用程序启动时 Shiny 崩溃

    我是Shiny的新手 但对R来说并不陌生 由于工作原因 我现在在RStudio服务器中进行R开发 它正在谷歌计算引擎上运行 如果这有什么不同的话 RStudio 服务器运行良好 但 Shiny 出现问题 安装闪亮后 我运行了示例命令 运行示
  • 如何使用内置的“排序”程序同时按两个字段(一个数字,一个字符串)排序?

    我有一个文件 可以说是 bigfile 其中包含以下形式的表格数据 a1 b2 a3 1b1 a2 c3 0 等等 我想在我的 Linux 机器上使用内置的 排序 程序 因此按第四个字段 数字 对该文件进行排序 然后同时按第一个字段排序 我
  • 有没有办法在 HTML 5 Web 音频 API 中检测音频频率?

    我想知道有没有一种方法可以检测 html 5 网络音频中麦克风的音频 我希望制作一个在线吉他调音器 并且我需要从声音输入获得以赫兹为单位的音频 我看到了一些均衡器和滤波器效果 但没有看到任何有关频率识别的内容 编辑 我找到了这个 http
  • 异步套接字连接如何报告错误?

    我正在异步连接套接字 O NONBLOCK connect POSIX 标准指定 在连接套接字后 应通过使套接字的文件描述符准备好写入来发出事件信号 它似乎没有说明异步连接期间的失败 在 Linux 上测试时 似乎有时会出现 POLLOUT
  • 有没有办法在忽略索引的情况下水平连接相同长度的数据帧?

    我有想要水平连接的数据帧 同时忽略索引 我知道对于算术运算 如果使用 numpy 数组 忽略索引可以带来显着的加速 values而不是熊猫系列 是否可以水平连接或合并 pandas 数据帧 同时忽略索引 令我沮丧的是 ignore inde
  • 解析 JSON 并将数据存储在 Python 类中

    这是我的 JSON 数据 id 1 name abc phone 12345 Charecteristics id 1 name Good Looking rating Average id 2 name Smart rating Exce
  • 获取公共 Twitter 个人资料的推文

    我在 Twitter 上有一个用户名列表 其个人资料是公开的 我希望获得他们从形成个人资料之日起发布的 所有推文 我检查了 Twitter4J 示例GitHub https github com yusuke twitter4j blob
  • python cx oracle 需要字符串、unicode 或缓冲区对象

    我试图在 python 中运行以下代码片段来连接到 oracle 但不断遇到以下错误 我尝试了很多组合 但似乎不起作用 我理解这个错误 但不明白这里有什么不兼容 有人遇到过这个问题吗 我如何解决它 文件 第 1 行 在文件 workplac
  • 如何使用 PHP 中的文件系统函数(使用 UTF-8 字符串)?

    我不能使用mkdir创建包含 UTF 8 字符的文件夹 当我在 Windows 资源管理器中浏览此文件夹时 文件夹名称如下所示 Dep sito 我应该怎么办 我用的是php5 Just urlencode http php net url
  • 验证 SOAP 消息

    我无法将任何 SOAP 消息验证为有效的 XML 例如 我从 Wikipedia 上获取了下面的 SOAP 消息 但它失败了Validome验证器 http www validome org xml validate 是验证器错误还是 SO
  • 使用正则表达式的 CakePHP 路由

    我有一个控制器设置来接受两个变量 clients view var1 var2 我想将其显示为 var1 var2 所以我尝试过 Router connect array admin gt false controller gt clien