Cakephp 3 带有语言参数的路由

2023-11-23

我正在尝试将 cakephp 2.x 转换为 3.x。我正在使用Router::connect()规则,但我尝试将它们转换为范围版本。

关于 myold 路由规则,在config/routes.php我添加了这个。

  Router::defaultRouteClass('Route');
  Router::scope('/', function ($routes) {

    $routes->connect('/:language/:controller/:action/*', ['language' => 'ar|de|en|fr']);
    $routes->connect('/:language/:controller', ['action' => 'index', 'language' => 'ar|de|en|fr']);
    $routes->connect('/:language', ['controller' => 'Mydefault', 'action' => 'index', 'language' => 'ar|de|en|fr']);

    $routes->redirect('/gohere/*', ['controller' => 'Mycontroller', 'action' => 'myaction'], ['persist' => array('username')]);

    $routes->connect('/', ['controller' => 'Mydefault', 'action' => 'index']);

    $routes->fallbacks('InflectedRoute');
});
  • 但这失败了example.com/en/works。我收到此错误:Error: worksController could not be found.因为我的控制器文件是WorksController.php.

控制器名称部分是否挂在句子 casein cakephp 3 上?http://book.cakephp.org/3.0/en/intro/conventions.html#controller-conventions

  • Also example.com/foo/bar给出这个错误:Error: barController could not be found.. But foo是控制器并且bar是行动。

我该如何解决这个路由问题?

Edit:
改变Route::defaultRouteClass('Route') to Route::defaultRouteClass('InflectedRoute')问题1解决了,但是问题2存在。


选项,例如路由元素模式,必须通过第三个参数传递Router::connect(), the $options争论。

这条路线:

$routes->connect(
    '/:language/:controller',
    ['action' => 'index', 'language' => 'ar|de|en|fr'
]);

会抓住你的/foo/barURL,它将匹配foo为了:language元素,以及bar为了:controller元素。基本上是languageURL 数组中的 key 将被视为默认值,并且它始终会被:language元素值。

定义路径的正确方法是:

$routes->connect(
    '/:language/:controller',
    ['action' => 'index'],
    ['language' => 'ar|de|en|fr']
);

其他路线也需要相应调整。

也可以看看Cookbook > 路由 > 连接路由

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

Cakephp 3 带有语言参数的路由 的相关文章

  • 由商店经理根据指定的分类术语过滤 WooCommerce 订单

    我想将带有特定产品标签的订单分配给后端的特定商店经理 并隐藏其余订单 我目前正在使用WooCommerce 订单拆分器 https wordpress org plugins woo order splitter免费插件可按项目 产品 将订
  • 使用 google 检查 url,安全 = 活动

    如何检查 url 是否被 google 显示 Example https www google com search q redtubex xxx safe active Code input http www example com in
  • PHP runkit_function_rename 不起作用?

    这段代码不起作用 为什么不 我真正想要的是这个 我正在使用一个具有功能的系统 当我在本地主机上时 我希望该函数做一些不同的事情 我想用自己的东西覆盖该函数 也欢迎所有替代方案 您是否安装了 PECL 扩展 http www php net
  • 删除 cookie php

    我正在尝试创建一个带有登录系统的平台 并将用户名和密码存储在cookie中 以使用户即使关闭浏览器然后再次输入也能保持登录状态 我设法保存了cookie 但我不知道如何制作注销按钮 这是代码 function logout body app
  • Jpgraph:如何在php中设置组条形柱形图的标签

    这是我的 jpgraph 演示代码
  • 根据产品类别自定义购物车总计和结帐总计文本

    我想根据产品类别 或其他一些逻辑 自定义购物车和结帐订单汇总表中的文本 例如 对于 总计 文本 参见图片 如果购物车包含名为 杂货 的类别中的产品 那么我希望订单摘要中的文本显示为 总计估计 文本 参见图片以下 如果购物车不包含任何杂货 那
  • 实现 PHP 单例:静态类属性还是静态方法变量?

    所以 我总是像这样实现一个单例 class Singleton private static instance null public static function getInstance if self instance null se
  • 检测 .htaccess 中对 php_value / php_flag 的支持以抑制错误 - PHP CGI 模式 - mod_php

    I use php value and php flag规则在 htaccess例如 php value upload max filesize 100M 但是 当服务器在 CGI 模式而不是 Apache 模式下运行时 这会导致错误 而我
  • Laravel 5.1 - 获取当前路线

    我正在开发一个为每个视图自动获取资源 css js 的函数 所以它工作得很好 让我们说 http mywebsite com displayitems http mywebsite com displayitems home about 等
  • 设置了 @version $Id$ 的 SVN Checkout

    我在 Subversion 中进行开发 在每个 PHP 文件的顶部都有以下注释块
  • 如何使用 Libsodium-PHP 加密/解密 AES

    我需要用 PHP 加密 解密数据 我对此完全陌生 但是我读到 Libsodium PHP 是 AES 加密的最佳工具 就像我研究过的其他 PHP 加密库一样 Libsoduim PHP 似乎几乎没有提供如何使用该库的文档 我能够找到 任何有
  • PHP 编译器 openssl 错误

    在提问之前 我必须说我已经tried堆栈和其他地方的每个类似问题都失败了 我无法使用composer因为这个错误 requires ext openssl gt the requested PHP extension openssl is
  • 在php中用逗号替换空格和换行符

    我搜索过但找不到任何有帮助的东西 所以 我有一堆数据 我基本上只需要在它们之间添加逗号 这些数据都来自记录 所以它的形式如下 13 566 888 958 898 我需要像这样输出 13 566 888 958 898 如果我可以将任意 2
  • 在 VS Code 中调试 PHPUnit 测试?

    我最近配置了 VS code 以使用 xdebug 调试 PHP 它与我的应用程序代码一起可靠地工作 但是当我使用 PHPunit 运行单元测试时 我的断点被忽略 我的服务器在一个流浪盒子内运行 My php ini文件包含以下行 xdeb
  • 如何使用 PHP 代码从服务器下载文件

    如何从任何服务器下载 PHP 代码文件 您可以使用 Curl 使用 php 从网络下载文件 function curl get file contents URL c curl init curl setopt c CURLOPT RETU
  • 使用 Facebook API 在朋友的墙上发布帖子

    我希望我的 Facebook 应用程序能够获取使用该应用程序的用户的 ID 并在他们的一位朋友的墙上找到该 ID 发布的帖子 我更喜欢使用个人 ID 的示例 而不是迭代所有朋友 我认为两个用户很可能都必须向应用程序提供权限才能执行此操作 这
  • XML 和 INI 哪个更快?

    我想知道 XML 是否比 INI 更快 反之亦然 我正在开发一个包含许多文件的网站 这个问题与我的问题有关关于包含许多文件 https stackoverflow com questions 7777522 too many include
  • 使用 PDO 的基于 PHP 类的用户系统 - 调用非对象上的成员函数prepare()

    我做了相当多的研究 故障排除和搜索 试图解决我的问题 但没有运气 所以这是错误 调用非对象上的成员函数prepare 生成此错误的代码位于我的用户 Auth 类中 如下所示 this gt dbManager gt db gt prepar
  • 使用 Javascript 编辑和保存用户 HTML - 安全性如何?

    例如我有一个Javascript 支持的表单创建工具 您可以使用链接添加元素的 html 块 如输入字段 并使用 TinyMCE 来编辑文本 这些是通过自动保存功能保存的 该功能在特定事件的后台执行 AJAX 调用 被调用的保存函数负责数据
  • 如何在 PHP 中去除字符串中的所有空格? [复制]

    这个问题在这里已经有答案了 我怎么能够strip remove all spaces of a string in PHP 我有一个string like string this is my string 输出应该是 thisismystr

随机推荐

  • 如何在 ASP.NET 运行时更改 FormsCookieName

    我们希望根据应用程序实例更改 FormsCookiePath 的 FormsCookieName 我们有一个应用程序 在 1 个服务器 域名上有多个实例 因此 我们只能同时在 1 个应用程序中工作 因为 cookie 会互相覆盖 顺便说一句
  • 无法使用 Vue CLI 3 要求“fs”

    我正在使用 Vue CLI 3 开发适用于 Windows 10 的调度软件 该应用程序需要使用 fs 模块 但是 我找不到方法 任何地方都没有 webpack 配置文件 我该如何解决这个问题 Vue CLI 3 是如此不同 以至于我无法使
  • jQuery .load() 不加载脚本

    我有 jQuery load 功能类似于 load to html 页面 targetID load load from html bodyPart script 但是 这似乎没有从 load from html 页面加载 javascri
  • 如何将系统命令输出存储在变量中?

    我正在执行一个 system 函数 它返回一个文件名 现在我不想在屏幕上显示输出 即文件名 或通过管道传输到新文件 我只想将其存储在变量中 那可能吗 如果是这样 怎么办 谢谢 单个文件名 是的 这当然是可能的 但不使用system Use
  • 批量删除文件名中的字符

    我在 Windows 资源管理器中有 3 个主文件夹 其中包含命名类似于 ALB 01 00000 intsect d kml 或 Baxters Creek AL intsect d kml 的文件 尽管第一个名称发生了变化 但我想从所有
  • HTML5 Canvas:缩放

    有没有简单的方法可以在画布 JavaScript 中放大和缩小 基本上我有一个 400x400px 的画布 我希望能够使用 mousedown 2x 放大并使用 mouseup 返回 过去两天用谷歌搜索 但到目前为止还没有运气 基于使用 d
  • 等待背景图像(css)加载完毕

    假设我们有一个图片幻灯片 这些图片的缩略图显示在带有滑块的 div 包装器中 我用 Jquery 创建的 并且每个图像都包含在 li 带有 CSS 背景集 它当然代表图像 我选择使用背景图像来进行布局 因为它们的大小和纵横比都不同 图像来自
  • 有哪些方法可以在 AngularJS 中显示“分块”响应?

    目前 我在显示从 Web 服务 Node js 服务器 localhost 3000 发送到 Node js 服务器 localhost 3001 上运行的模拟客户端的响应 块 时遇到问题 编辑 当前实现仅使用 Angular 的 http
  • 我可以从 popen() 流打开 bash 吗?

    根据 popen 的手册页 我正在打开 bin sh 有没有办法可以重载此行为以打开 bin bash shell 并与 BASH shell 脚本交互 或者我是否需要打开 pty 风格的连接才能做到这一点 如果您想在传递给的代码片段中使用
  • Android 警报对话框并设置肯定按钮

    这是用于滑块拼图的 我想在拼图完成时显示一个带有 确定 按钮的对话框 当按下 确定 按钮时 我使用Intent通过 Android 浏览器加载网站 唯一的问题是 使用当前代码 当拼图完成时 它不会加载盒子 当我使用null 它没有任何作用
  • 如何将 istream 与字符串一起使用

    我想将文件读入字符串 我正在寻找不同的方法来有效地做到这一点 使用固定大小的 char 缓冲区 我收到了answer来自 Tony 的内容创建了一个 16 kb 缓冲区并读取该缓冲区并追加该缓冲区 直到没有更多内容可读取 我了解它是如何工作
  • 在 XSLT 中使用 fn:sum 以及包含空值的节点集

    我正在尝试使用 XSLT 和 XPath 函数 fn sum 对 XML 中的一组值求和 只要值非空 这种方法就可以正常工作 但事实并非如此 为了说明我的问题 我举了一个例子
  • 使用 ReactiveX for Java 进行 Http 调用

    我是 ReactiveX for Java 的新手 我有以下代码块可以进行外部 http 调用 但它不是异步的 我们使用 rxjava 1 2 和 Java 1 8 private ResponseEntity
  • 如何使用 jQuery 自动跳到下一个字段?

    在 jQuery 中 如何触发用户切换到下一个输入字段的行为 我试过这个 var e jQuery Event keydown e which 9 Key code for the Tab key input trigger e 但触发事件
  • Visual Studio 2022 Xamarin Android SDK 安装模拟器“操作失败:安装 Android Emulatorv31.2.10”

    我目前正在尝试通过 Android SDK 和工具对话框安装 Android 模拟器 但我收到错误消息 操作失败 安装 Android Emulatorv31 2 10 指定的参数超出了有效值的范围 我到目前为止删除了所有设置的设备仍然没有
  • 从命令行运行 jar 时出现 MessageBodyProviderNotFoundException

    我正在使用 Java Jersey 框架 带有 Maven 并使用 IntelliJ 作为我的 IDE 我遇到过这个运行时异常 仅当我尝试从命令行运行代码时才会发生 使用 maven 进行编译 然后使用 java jar 但在 Intell
  • Xcode 9 - 无法为应用程序包 ID 创建 IXPlaceholder

    更新到 Xcode 9 并在模拟器上编译的 启动 阶段时 我收到错误 无法为应用程序包 ID 创建 IXPlaceholder 重点强调此问题仅在尝试启动模拟器时发生 因为我的实际 iPhone 6s 启动时没有任何问题 尝试 确保 inf
  • 如何在 PLAYWRIGHT 上使用选择器进行条件语句? [复制]

    这个问题在这里已经有答案了 我需要一些帮助来使用剧作家测试做出条件语句 我有一个给定的选择器 比如说一个按钮 我需要编写如下的条件语句 if selector is not present visible do nothing and pr
  • 无法在 OSX 上使用 RVM 运行 Ruby 2.2.3

    我有两台 MacBook 一台在 Mavericks 上 另一台在 Yosemite 上 并且两台 MacBook 上都会发生同样的情况 使用 RVM 安装 Ruby 2 2 3 后 出现以下错误 rvm rubies ruby 2 2 3
  • Cakephp 3 带有语言参数的路由

    我正在尝试将 cakephp 2 x 转换为 3 x 我正在使用Router connect 规则 但我尝试将它们转换为范围版本 关于 myold 路由规则 在config routes php我添加了这个 Router defaultRo