【问题标题】:Post form doesn't work with routing in cake php发布表单不适用于 cake php 中的路由
【发布时间】:2014-07-01 21:44:48
【问题描述】:

我已经为用户注册实现了一个弹出窗口:

这里是元素文件夹中的popout.ctp表单,在default.ctp中被调用:

echo $this->Form->create('User', array('url' => array('controller' => 'users', 'action' => 'register')));
echo $this->Form->hidden('popup');
echo $this->Form->input('email', array('label' => 'Your Email:'));
echo $this->Form->end('Sign me Up!'); 

当我在用户视图中打开任何操作时,注册按钮工作正常,页面被重定向到注册用户视图中的操作。

而,当我在根目录中时,索引页面在另一个视图中,按下注册按钮不会重定向到 /users/register 并转到同一页面。

这里是路由:

  1. Router::connect('/users/register/', array('controller' => 'users', 'action' => 'register'));
  2. Router::connect('/', array('controller' => 'events', 'action' => 'viewall'));

当我删除规则 2 时,事件操作中的注册按钮可以正常工作!

我不明白怎么做,这不符合第一条规则。

提前感谢您的帮助!

【问题讨论】:

  • 我认为您可能不是在看“问题”,而是在看它的一些几乎不相关的方面。带有和不带有路由 2 的 html 表单是什么?如果它没有改变问题不是你所描述的。 2) 当您提交注册表时会发生什么?没有细节就没有详细的答案。

标签: forms cakephp redirect routing


【解决方案1】:

如果没有任何进一步的信息,第二个实例可能会以某种方式覆盖第一个实例。另一种可能性是,“action”的路径以某种方式无效,或者控制器假定“action”文件路径(我假设它是“$action”.php)是相对于路径“/” .

找到这个:

cakephp routing problem, plugin routing works but not others

具体来说:

事实证明,这是因为应用程序文件夹中存在用户模型和用户控制器以及插件控制器。因此路由将其他控制器视为不存在。

现在全部修复。

干杯,保罗

我相信,这与我最初的回答不谋而合。

【讨论】:

  • 这应该是一条评论
  • 我可以解决这个问题。我有另一个表单,忘记添加表单结束标记 .... 所以在提交我的第二个表单时,它实际上是在提交我的第一个表单。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
相关资源
最近更新 更多