问题标签 [cakephp-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
386 浏览

php - 在 CakePHP 中列出不在数据库中的城市

我在 CakePHP 中有一个列出企业的应用程序。我有一个业务模型/控制器,以及一个 state_list 模型/控制器。但是我想更详细一点,因此当用户单击州页面时,它会列出该特定州中列出企业的所有城市。
然后,当他们单击特定城市时,它会显示一个页面,其中列出了该州的所有企业特定的城市。

如果没有所有城市列表的数据库表,我怎么能做到这一点?

0 投票
1 回答
1118 浏览

php - 如何验证 URL,但如果 http:// 或空白则忽略?

我想验证 URL 的表单字段。我已将该字段的默认值设置为 http://。当用户没有输入 URL 并离开 http:// 时,它会显示无效 URL。URL 不是必需的,因此如果它只是 http://,则不应显示错误消息。如果此人提交 http:// 作为 URL,我如何使其忽略?

谢谢

0 投票
1 回答
1302 浏览

php - CakePHP - 使用通配符路由(找不到控制器错误)

我什至不确定如何准确搜索此内容,但我有一个 URL

论坛是一个插件,我目前已经成功地将它路由到插件论坛

但是,我想添加一条将任何顶级子目录连接到插件论坛的路由。例如,

都会路由到论坛插件。相似地,

还将路由到论坛插件。这是我能想到的最好的方法,但没有任何效果(我得到“找不到 FishController”:

我能找到的最接近的答案基本上说这可能是不可能的?http://cakephp.1045679.n5.nabble.com/Routes-with-wildcards-missing-controller-errors-td1263632.html

编辑:经过更多的试验和错误,我尝试了这个:

它有效。有人可以解释一下吗?

0 投票
3 回答
2473 浏览

php - 2.0Beta 中的 Cake PHP 路由问题

我正在将开发站点升级到 Cake 2.0 Beta 并且我的自定义路由似乎已损坏。上一个站点将 url /login 路由到了员工控制器 action:login。这是设置路线的代码:

相反,当 Cake 找不到页面的控制器时,我会得到标准错误:

这意味着它根本没有被路由;LoginController 不应该被调用,也不存在。我已经确认EmployeesController 中的登录功能甚至从未启动过。该页面应路由到EmployeesController login() 函数,该函数生成Employees Login 视图。

我错过了 Cake 处理路由的方式的变化吗?这里有什么问题吗?

更新:

我知道顺序对路由很重要,所以这里是 app/config/routes.php 中相关路由器语句的确切顺序:

还有更多路由,但它们都是漂亮的 URL,在这种情况下不会被调用。

此外,这是来自EmployeesController 的函数,它将用户重定向到实际的/login URL。在此重定向之前一切正常:

$goto/str_replace()东西只是构造一个用户登录成功后要访问的URL 。在这种情况下没有使用它,我们只是被重定向到 /login/ 我现在需要以不同的方式重定向吗?此重定向将转到正确的 URL,但是一旦到达那里,它就不会被路由,尽管使用了正确的 router:connect 语句。

更新:routes.php 中的路线顺序似乎是问题的一部分;我将 /login 的路线更改为高于以下require CAKE . 'config' . DS . 'routes.php'内容:

我已经确认现在' login'动作从EmployeesController.php现在开始执行,所以他们的路由正在执行到那个程度。但是我现在收到以下错误:

这是因为我在 Cake 的默认路由之前路由造成的吗?我正在使用 Cake 的默认数据库插件 (Sqlserver) 进行连接,此路由更改是否破坏了到数据库插件的路由?如果是不同的问题,我可以创建一个单独的问题,因为如果上述修复与丢失的数据源无关,则原始问题已得到修复。

0 投票
1 回答
669 浏览

php - CakePHP 基于域名的动态主页

我希望根据域名更改我的应用程序的主页。

  • 要链接到的域名 x.com(我们的主应用程序域):控制器:页面 | 行动:回家
  • 域名 y.com 或 z.com(通过我们的主应用程序域创建的商店)链接到:控制器:商店 | 行动:索引

要设置主页,定义此路由:

问题:如何使这个动态并添加条件,以便根据域名加载不同的控制器/动作?

笔记:

  • 在 AppController 的 beforeFilter 中,我执行了一些数据库检查。它检查以确保商店确实存在(通过商店模型)。如果商店/域不存在,它会重定向到我们的主域名。
  • 我想保持 URL 干净。我不想重定向到基于域名的页面。重定向意味着主页看起来像http://x.com/pages/home/就像http://x.com/
0 投票
1 回答
423 浏览

php - CakePHP,使用通用控制器的可选控制器的路由,否则

我想在 CakePHP 中创建一个管理练习和用户结果的应用程序。用户和结果在这个问题中并不重要。

我希望有可能通过仅将特定表和行添加到 .ini 配置文件来添加练习。如果特定的不存在,应用程序应路由到 GenericExercisesController。如果特定不存在,控制器应加载 GenericExerciseModel。我已经通过模型加载和部分路由与控制器进行了管理,如下所示:

route.php

所以如果我想加载一个练习Foo我应该使用地址:

http://example.com/exercises/Foos/view

这工作正常,如果特定控制器存在无关紧要。

当我使用反向路由在视图中生成链接时,问题就开始了。如果练习Foo具有特定的控制器,则可以正常工作:

print $this->Html->url(array('controller' => Inflector::pluralize($exerciseName), 'action' => 'view')); 产生: /exercises/Foos/view

但是当锻炼没有特定的控制器时,同样的代码会产生: /Bars

这会导致一个问题,没有BarsController。

我暂时手动生成这些链接,但我认为这不是最好的解决方案:

print $this->Html->url("/".Configure::read('exerciseRoutingPrefix')."/".Inflector::pluralize($exerciseName)."/view");

也许你们中的某个人知道更好的解决方案。感谢您阅读我的问题。

更新 1:

这些是route.php之前定义的路线,foreach因为它们在文件中:

0 投票
1 回答
1538 浏览

php - 使用 Cake PHP 路由器自动将破折号转换为下划线

我一直在设置一些这样的路线:

我想用这样的路线替换它们:

url/background/my-third-page将映射到操作的位置my_third_page(在后台控制器中)。请注意,网址有破折号,动作有下划线。

目前 Cake 无法映射从破折号到下划线的转换,所以我的新路线失败了: /background/my-third-page但这有效:/background/my_third_page

我想在网址中保留破折号。有什么方法可以让 Cake 将破折号映射到下划线?

我还希望反向路由从下划线映射到破折号,所以:

将映射到:background/my-third-page.

谢谢!

0 投票
1 回答
153 浏览

cakephp - Cakephp 重写规则

我有网址微型网站/索引。使用操作索引,我想传递像 1001 这样的参数。所以,为它创建规则如下:

Router::redirect('/Microsites', array('controller' => 'Microsites', 'action' => 'index',1001));

它工作正常并在地址栏中显示网址,例如:/Microsites/index/101

但是,我想显示如下网址:/Microsites/index

非常欢迎提出建议......

0 投票
0 回答
592 浏览

cakephp - 带参数和前缀的 cakePHP 路由

我正在使用管理员前缀,我想将一些参数传递给我的控制器,但我在路由方面遇到了困难。

我想使用以下网址传递变量“string1”:domainame.com/admin/DumbController/string1

我希望将 string1 传递给控制器​​中的 index 方法(实际上在 DumbController 中称为 admin_index)。

如果我使用 url: domainame.com/admin/DumbController/index/string1 那么它可以工作。但是,我想使用路由将其引导至正确的操作。

这是我与 /admin 相关的路由,因为它们在 routes.php 中:

控制器有一个公共 admin_index($chartType=null) 方法。我已经玩了很多路由,但似乎没有像我预期的那样工作。有人可以指出我正确的方向吗?

谢谢!

编辑:添加了唯一的其他与管理员相关的路线,但大约有 15 条,因为还有很多其他事情正在发生。

0 投票
1 回答
318 浏览

php - cakephp中的页面重定向不起作用

我是 CakePHP 的初学者,正在研究现有的 CakePHP 网站。

场景:每当我尝试通过 URL 直接访问页面时,它都会登陆登录页面。

例如,这是我的注册页面。它有一个提交按钮。当我单击此提交按钮时,它会进入登录页面并将 Flash 消息设置为“注册成功”。我不想那样。我期望的是重定向到其他页面。

register()相应控制器的功能中,我找到了这段代码,它负责重定向到登录页面:

当我将重定向 URL 更改为我想要重定向的新页面时

..它仍然登陆登录页面!

我在这里做错了什么?