CakePHP - 如何使用自定义参数创建路由?

2023-12-01

我的蛋糕网址是这样的:

$token = '9KJHF8k104ZX43';

$url = array(
    'controller' => 'users',
    'action' => 'password_reset',
    'prefix' => 'admin',
    'admin' => true,
    $token
)

我希望它能够路由到一个更漂亮的 URL,例如:

/admin/password-reset/9KJHF8k104ZX43

但是,我希望末尾的令牌是可选的,以便在有人不提供令牌的情况下,它仍然会路由到:

/admin/password-reset

这样我就可以捕获这种情况并重定向到另一个页面或显示一条消息。

我已经读了很多关于路由的书,但我仍然觉得它没有以我完全理解的方式正确解释复杂的情况,所以我真的不知道该从哪里开始。就像是:

Router::connect('/admin/password-reset/:token', array('controller' => 'users', 'action' => 'password_reset', 'prefix' => 'admin', 'admin' => true));

我真的不知道如何选择性地捕获令牌并将其传递给 URL。


您将需要使用命名参数。以我的一个项目为例

Router::connect('/:type/:slug', 
        array('controller' => 'catalogs', 'action' => 'view'), 
        array(
            'type' => '(type|compare)', // regex to match correct tokens
            'slug' => '[a-z0-9-]+', // regex again to ensure a valid slug or 404
            'pass' => array(
                'slug', // I just want to pass through slug to my controller
            )
        ));

然后,在我看来,我可以建立一个链接来传递slug。

echo $this->Html->link('My Link', array('controller' => 'catalogs', 'action' => 'view', 'type' => $catalog['CatalogType']['slug'], 'slug' => $catalog['Catalog']['slug']));

我的控制器动作看起来像这样,

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

CakePHP - 如何使用自定义参数创建路由? 的相关文章

  • 使用 rspec 测试嵌套路由

    我正在尝试使用 rspec 测试路由 以下给出了 预期块返回真值 的错误 我不确定我错过了什么 通过浏览器我可以发布到这个网址并且成功 有任何想法吗 谢谢 Routes resources forum topics do resources
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • Angular 2 获取当前路线

    所以我需要以某种方式检查我是否在主页上执行某些操作 而在其他页面上则不执行此操作 该组件也在所有页面上导入 如果我在主页上 如何检测该组件 Thanks 尝试这个 import Router from angular router expo
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • Cakephp 自定义日期输入表单助手的输出

    I got echo this gt Form gt input birthdate array label gt Geburtsdatum true dateFormat gt DMY minYear gt date Y 70 maxYe
  • 如何重定向到 warp 中带有尾部斜杠的 URL?

    我在用warp https crates io crates warp提供静态文件目录 不幸的是 当我在路径中添加尾部斜杠时 只能解析这些静态文件中使用的相对链接 这是我用来服务目录的代码 let route warp path segme
  • CakePHP Auth 组件使用 $this->Auth->login() 时未登录;

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

    我正在尝试创建指向特定静态文件的路由 但我尝试的所有内容都以错误结束 我做了3种不同的尝试 1 GET file staticFile public html file html 我得到的错误 Compilation error strin
  • Rails 路线、url 和子域

    我的 ruby 应用程序分为不同的命名空间 例如 免费 free domain com 专业版 pro domain com vip vip domain com 在路由文件中看起来像这样 namespace free do match h
  • 基于角色在同一路径上延迟加载模块

    我正在尝试根据我的角色加载 Angular 模块 当我登录时 我用 Angular Guard 尝试过 但这不起作用 当它失败时 它不会转到下一条路线 const routes Routes path loadChildren gt Aut
  • Angular 2 错误:无法解析“RouteParams”的所有参数

    尝试使用 RouteParams 获取查询字符串参数 但我只是收到错误 无法解析 RouteParams 的所有参数 确保所有 参数用 Inject 修饰或具有有效类型 注释并且 RouteParams 用 Injectable 修饰 an
  • Angular2 命名路由

    我用的是Angular2Webpack 入门 https github com AngularClass angular2 webpack starter in 这个最新版本 https github com AngularClass an
  • 包括 PHPUnit 在内的麻烦

    我想开始为我的代码编写测试 因此我使用以下命令安装了最新的 PHPUnit wget http pear phpunit de get phpunit phar chmod x phpunit phar mv phpunit phar us
  • React router dom 6 中的受保护路由

    我在反应中创建了简单的用户上下文 用户提供者 export const AuthContext createContext export const AuthProvider children gt const user setUser u
  • 如何防止 CakePHP 中重复表单提交?

    我发现 CakePHP 中的安全组件通过将令牌作为隐藏值添加到表单中来帮助防止 CSRF 我想知道是否有办法防止使用此组件或其他组件 帮助器重复表单提交 在之前的项目中 我使用了保存在会话中的唯一哈希值 该哈希值会在提交时读取并删除 重复提
  • 使用 PhpStorm 删除 CakePHP 中的插件后出现“成员有私人访问错误”

    从我的 CakePHP 框架中删除插件以及与其关联的所有代码行后 我在以下位置收到错误getInitializer的功能autoload static php in my vendor gt composer folder public s
  • 以编程方式启用 Internet 连接共享

    我可以手动执行此操作 方法是右键单击网络连接 打开 共享 选项卡 单击 允许其他网络用户通过此计算机的 Internet 连接进行连接 复选框 然后选择 家庭网络连接 在研究这个问题时 我发现了多组 COM 接口 1 Internet 连接
  • CakePHP Unfilled 单选按钮在提交时更改为不需要的值

    我有这个表单元素 form gt input ChecklistResponseGovernmentInfo driversLicenseIsOnline array type gt radio empty gt true options
  • 何时在 CakePHP 中进行清理

    我读了食谱 第 4 2 节 如果您使用 CakePHP 的 ORM 方法 例如 find 和 save 和正确的数组表示法 即 array field gt value 而不是原始 SQL CakePHP 已经可以保护您免受 SQL 注入
  • 手动刷新 Angular 之前页面无法正常显示

    我面临着非常奇怪的问题 我的角度应用程序页面显示正确 它似乎没有完全加载 当我手动重新加载 刷新页面时 它的加载正常 这是完整的场景 我创建了一个登录页面 该页面显示完美并按预期工作 登录后 我导航到仪表板页面 该页面未正确显示 似乎加载了

随机推荐

  • 使用对象类型的字符串名称在 C# 中进行类型转换

    我有以下代码 应该很容易理解 public class Foo public void FooHasAMethod Console WriteLine it is me foo public class Bar public Foo Foo
  • sh 按匹配的列名值分解 CSV 文件,同时保留标题

    我有一个目录 其中包含来自表导出的许多 CSV 文件 tblA csv A B C 1 1 1 1 2 2 2 2 2 3 3 3 tblB csv C D A 1 1 1 1 2 2 2 2 2 3 3 3 为了破坏文件我找到了这个脚本
  • 将 Map[String, Double] 转换为 java.util.Map[String, java.lang.Double]

    我认为我们可以依靠隐式转换来转换scala Double to java lang Double 所以我尝试了以下方法 import scala collection JavaConverters object Main extends A
  • 如何从我的 iPad 应用程序打开设置 (Objective-C) [重复]

    这个问题在这里已经有答案了 我尝试过使用 UIApplication sharedApplication openURL NSURL URLWithString prefs root General path Network 以及您在这里看
  • 从 JAR 中执行 python 文件

    我试图弄清楚如何引用 python 文件 以便我可以在 Java GUI Jar 中执行它 它需要是一个可移植的解决方案 因此使用绝对路径对我来说不起作用 我在下面列出了我的项目结构 并包含了我如何尝试执行 python 脚本的代码 我已经
  • 如何修复高图表中隐藏的数据标签?

    请看一下JSFIDDLE 此处 绿色条不显示任何值 我知道添加overflow none crop false将显示该值 但它超出了绘图区域 有时对于较大的数字 它与标题重叠 我想 仅 在条内获取绿色条值 而不是隐藏该值 对于内部的特定列
  • 淘汰打字稿扩展器

    有人可以发布一个在打字稿中扩展可观察值的示例吗 淘汰赛延长器 http knockoutjs com documentation extenders html 我从2013年3月6日开始使用这个版本的knockout d tshttps g
  • RabbitMQ SSL 与 Apring AMQP 1.4.3 连接

    我正在尝试通过 SSL 连接到 RabbitMQ 我已按照 此处 https www rabbitmq com ssl html 链接的 RabbitMQ SSL 文档进行操作 根据 RabbitMQ SSL 文档 由于已知漏洞 不建议使用
  • 验证输入字符串是有效的十进制数

    任何人都可以提供一种算法来检查输入字符串是否是正确形状和形式的十进制数 正确形状和形式的规则 最多两位小数 出于所有实际目的 最大数字是 99 999 999 99 整数部分可以使用空格 逗号或点作为组分隔符 小数部分可以使用逗号或点作为分
  • 使用 fgetcsv 将 Excel csv 导出到 php 文件

    我正在使用 Excel 2010 Professional Plus 创建 Excel 文件 稍后我尝试将其导出为 UTF 8 csv 文件 我通过将其另存为 CSV 符号分隔 抱歉 我不知道那里的确切措辞 但我没有英文版本 我担心它的翻译
  • 从 podspec 或 info.plist 检索 pod 版本到代码中

    我创建了自己的 pod 其中包含 podspec 文件 其中包含 s version 0 4 7 我希望以编程方式将其写入代码中 因此每当应用程序运行时 它都会将 pod 版本发送到服务器 另一个获取 pod 版本的地方是下面的 plist
  • Kafka Streams 2.1.1 类转换,同时刷新定时聚合以存储

    我正在尝试使用 kafka 流执行窗口聚合 并仅在某个会话窗口关闭后才发出结果 为了实现这一点 我使用了抑制功能 问题是我找不到一种方法来使这个简单的测试工作 因为当它尝试保持状态时 我得到一个类转换异常 因为它尝试将 Windowed 转
  • 为什么 fill_n() 不能与 vector.reserve() 一起使用?

    最近在学习标准库算法 有一个关于函数的问题fill n iter n val 该功能要求容器至少有n元素开始于iter 这是测试代码 Version 1 Error vector
  • 如何通过struts从一个jsp打开另一个jsp

    如何打开一个jsp来自另一个jsp通过Struts 例如 我有 2 个 JSP Page1 jsp 和 Page2 jsp 页面1 jsp不含任何表格 页面2 jsp包含一个表格 我需要一个链接页面1 jsp which 当点击时带我去页面
  • 使用sql数据库驱动程序

    最终用户 开发或生产 能否推荐一个最好使用 database sql 包的 Sql 驱动程序包 我对 Postgres ODBC MySql 可能还有其他东西 但对于大容量的东西 即不是 Sqlite 感兴趣 它们最好可以在 Windows
  • 使用 selenium 进行 Scrapy 处理需要身份验证的网页

    我正在尝试从具有大量 AJAX 调用和 javascript 执行的页面中抓取数据来呈现网页 所以我尝试使用 scrapy 和 selenium 来执行此操作 作案手法如下 将登录页面URL添加到scrapy start urls列表中 使
  • Pandas groupby 将未分组的列连接成逗号分隔的字符串

    我有以下示例 df col1 col2 col3 doc no 0 a x f 0 1 a x f 1 2 b x g 2 3 b y g 3 4 c x t 3 5 c y t 4 6 a x f 5 7 d x t
  • shapefile 中的奇怪多边形

    我正在尝试将 shapefile 应用到 ggmaps 地图 但它给了我非常奇怪的结果 有问题的形状文件是澳大利亚统计局提供的 统计本地区域 类似于邮政编码的组 形状文件here Normally I might think that it
  • BufferedWriter 不写入文本文件

    所以我用的是缓冲写入器并想将一些文本写入文本文件 try BufferedWriter b new BufferedWriter new FileWriter home usr Desktop logger logs txt b write
  • CakePHP - 如何使用自定义参数创建路由?

    我的蛋糕网址是这样的 token 9KJHF8k104ZX43 url array controller gt users action gt password reset prefix gt admin admin gt true tok