问题标签 [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.
php - 在 CakePHP 中列出不在数据库中的城市
我在 CakePHP 中有一个列出企业的应用程序。我有一个业务模型/控制器,以及一个 state_list 模型/控制器。但是我想更详细一点,因此当用户单击州页面时,它会列出该特定州中列出企业的所有城市。
然后,当他们单击特定城市时,它会显示一个页面,其中列出了该州的所有企业特定的城市。
如果没有所有城市列表的数据库表,我怎么能做到这一点?
php - 如何验证 URL,但如果 http:// 或空白则忽略?
我想验证 URL 的表单字段。我已将该字段的默认值设置为 http://。当用户没有输入 URL 并离开 http:// 时,它会显示无效 URL。URL 不是必需的,因此如果它只是 http://,则不应显示错误消息。如果此人提交 http:// 作为 URL,我如何使其忽略?
谢谢
php - CakePHP - 使用通配符路由(找不到控制器错误)
我什至不确定如何准确搜索此内容,但我有一个 URL
论坛是一个插件,我目前已经成功地将它路由到插件论坛
但是,我想添加一条将任何顶级子目录连接到插件论坛的路由。例如,
都会路由到论坛插件。相似地,
还将路由到论坛插件。这是我能想到的最好的方法,但没有任何效果(我得到“找不到 FishController”:
我能找到的最接近的答案基本上说这可能是不可能的?http://cakephp.1045679.n5.nabble.com/Routes-with-wildcards-missing-controller-errors-td1263632.html
编辑:经过更多的试验和错误,我尝试了这个:
它有效。有人可以解释一下吗?
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) 进行连接,此路由更改是否破坏了到数据库插件的路由?如果是不同的问题,我可以创建一个单独的问题,因为如果上述修复与丢失的数据源无关,则原始问题已得到修复。
php - CakePHP 基于域名的动态主页
我希望根据域名更改我的应用程序的主页。
- 要链接到的域名 x.com(我们的主应用程序域):控制器:页面 | 行动:回家
- 域名 y.com 或 z.com(通过我们的主应用程序域创建的商店)链接到:控制器:商店 | 行动:索引
要设置主页,定义此路由:
问题:如何使这个动态并添加条件,以便根据域名加载不同的控制器/动作?
笔记:
- 在 AppController 的 beforeFilter 中,我执行了一些数据库检查。它检查以确保商店确实存在(通过商店模型)。如果商店/域不存在,它会重定向到我们的主域名。
- 我想保持 URL 干净。我不想重定向到基于域名的页面。重定向意味着主页看起来像http://x.com/pages/home/就像http://x.com/
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
这会导致一个问题,没有Bars
Controller。
我暂时手动生成这些链接,但我认为这不是最好的解决方案:
print $this->Html->url("/".Configure::read('exerciseRoutingPrefix')."/".Inflector::pluralize($exerciseName)."/view");
也许你们中的某个人知道更好的解决方案。感谢您阅读我的问题。
更新 1:
这些是route.php
之前定义的路线,foreach
因为它们在文件中:
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
.
谢谢!
cakephp - Cakephp 重写规则
我有网址微型网站/索引。使用操作索引,我想传递像 1001 这样的参数。所以,为它创建规则如下:
Router::redirect('/Microsites', array('controller' => 'Microsites', 'action' => 'index',1001));
它工作正常并在地址栏中显示网址,例如:/Microsites/index/101
但是,我想显示如下网址:/Microsites/index
非常欢迎提出建议......
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 条,因为还有很多其他事情正在发生。
php - cakephp中的页面重定向不起作用
我是 CakePHP 的初学者,正在研究现有的 CakePHP 网站。
场景:每当我尝试通过 URL 直接访问页面时,它都会登陆登录页面。
例如,这是我的注册页面。它有一个提交按钮。当我单击此提交按钮时,它会进入登录页面并将 Flash 消息设置为“注册成功”。我不想那样。我期望的是重定向到其他页面。
在register()
相应控制器的功能中,我找到了这段代码,它负责重定向到登录页面:
当我将重定向 URL 更改为我想要重定向的新页面时
..它仍然登陆登录页面!
我在这里做错了什么?