Cakephp 向表单添加附加链接按钮(使用表单->;创建)

Cakephp 向表单添加附加链接按钮(使用表单->;创建),cakephp,Cakephp,我最近被分配到一个CSS&design项目,该项目位于CakePHP环境中,我想知道是否可以在表单中添加一个额外的按钮,用于“注册”链接 表格目前为: echo $form->create('User', array('action' => 'login')); echo $form->inputs(array( 'legend' => 'Please log in:', 'username', 'password')); echo $

我最近被分配到一个CSS&design项目,该项目位于CakePHP环境中,我想知道是否可以在表单中添加一个额外的按钮,用于“注册”链接

表格目前为:

 echo $form->create('User', array('action' => 'login'));
    echo $form->inputs(array(
      'legend' => 'Please log in:',
      'username', 'password'));
 echo $form->end('Login');
我想在同一行的“登录”按钮之后插入一个“注册”操作的按钮,最好是这样:


用户名:[]

密码:[]

[登入][登记]



除了“注册”按钮,我什么都有。是否可以使用“automagic”表单创建?谢谢。

是的,做蛋糕很容易!只需使用FormHelper的“按钮”方法

当然,这仍然会将操作发送到Form::create中指定的URL,但是您可以在控制器中使用一些魔法来正确处理请求


也许你可以试试这个:

echo $form->button('Register', array('onclick'=>"window.location='/users/register';"));
我会再做一张表格

echo $form->create('User', array('action'=>array('controller'=>'users','action'=>'register'));
echo $form->end('Register');

那么,至少您根本没有真正“黑客”该框架,并且使用了语义正确的代码和准确的操作。

您好,谢谢您的回复。但我现在面临的问题是如何运用“魔法”。我有一个控制器(“用户”)和一个操作(“寄存器”)存在于现在为它存在的链接中。但是我想把它转换成一个表单按钮,它有同样的魔力,但是我似乎无法让它工作。谢谢,我有点困惑。您是说希望表单按钮实际重定向到不同的URL(例如,/users/register与/user/login)?在这种情况下,您有几个选项:使用js重写表单的“action”属性。您可以将整个表单操作发布到/users/register,然后在您的UsersController::register()方法中,只要调用login(如果他们单击了该按钮)。我建议将数据发送到一个函数,该函数根据按钮确定它是否是登录/注册。我刚才看到了Spawn的答案——他的解决方案将执行js重写。但是,如果有人禁用了js,它不会优雅地降级,这就是为什么我不推荐它(上面描述的另一种方法适用于任何浏览器配置)。@Travis Leleu,事实上,我相信最简单有效的方法应该是优雅的。我也很好奇为什么人们在浏览网页时会使用js禁用功能?@Spawn一些web用户在浏览网页时没有启用javascript。有些人使用旧电脑,有些人让IT人员关闭它,有些人(像我一样)只允许js在我列出的网站上运行。“优雅降级”意味着即使您开始关闭浏览器功能,您的网站仍能正常工作。所以你的站点应该不用js就可以工作,而只是用它来增强用户体验,而不是它所需要的。
echo $form->create('User', array('action'=>array('controller'=>'users','action'=>'register'));
echo $form->end('Register');