-2

我在 cakephp 的默认布局中有一个 html 表单。我是蛋糕的新手,它的文档是……嗯,你知道的。

我的问题是是否可以将该表单的操作设置为“用户/登录”之类的内容并重定向到预览页面。Auth 组件文档也没有用,所以如果你们中的某个人给我一些启发,我将不胜感激。

谢谢

4

2 回答 2

1

您是否使用FormHelper来构建表单?如果是,您可以在 create 方法中指定表单的操作:

$this->Form->create('User', array('action' => 'login'));

然后,您可以在控制器的登录操作中处理重定向。最有可能的是:$this->redirect()

http://book.cakephp.org/2.0/en/controllers.html#Controller::redirect

您可能会发现本教程对 Auth 组件很有帮助:

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

于 2013-03-13T22:04:59.317 回答
1

设置动作: http ://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-create

检查选项操作。应该是这样的:

$this->Form->create('User',array('action'=>array('controller'=>'users','action'=>'login')));

或者你可以直接放(不推荐)'/Users/login'

现在...对于重定向,请检查:

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#AuthComponent::$loginRedirect

AuthComponent::$loginRedirect

用户登录后应重定向到控制器操作的 URL(定义为字符串或数组)。如果用户在其会话中具有 Auth.redirect 值,则该值将被忽略。

如果该页面不公开,Cake 会将您尝试访问的页面存储在会话中。如果该页面是公开的,我不确定它是否还存储该页面的 url,您必须对其进行测试。但如果没有,你可以在 AppController 上写几行让它工作。它应该是这样的:

if current_page is public and current_page is not login or logout page:
    $this->Session->write('Auth.redirect',$this->here);

要检查页面是否公开,您需要查看 Request 对象,在 $params 的某处有一个前缀。

希望这会有所帮助...不要放弃文档^^...

于 2013-03-13T22:06:34.947 回答