加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

表单 – CakePHP 2.x:使用CakeDC的用户插件和安全组件将登录表

发布时间:2020-12-14 16:42:12 所属栏目:资源 来源:网络整理
导读:新的Cake PHP用户在这里.我一直无法找到解决这个问题的方法. 我想在现有页面中嵌入一个登录表单作为元素.我正在使用CakeDC用户插件.目标是在页面中嵌入登录表单,然后在登录时更新页面上的某些内容而不刷新页面.在我们开始担心AJAX和SecurityComponent之前,我
新的Cake PHP用户在这里.我一直无法找到解决这个问题的方法.

我想在现有页面中嵌入一个登录表单作为元素.我正在使用CakeDC用户插件.目标是在页面中嵌入登录表单,然后在登录时更新页面上的某些内容而不刷新页面.在我们开始担心AJAX和SecurityComponent之前,我想至少将表单作为元素嵌入到其他页面中.

对于初学者,我试图直接将’/Views/Users/login.ctp’的内容复制并粘贴到元素中.这给了我一个’未定义变量’$Model“’的警告,因此我将模型硬编码为’Users.User'(因为我认为访问插件中的模型的符号是’plugin.model’,就像他们说的那样手册).这失败了错误消息错误:找不到Users.usersController.

因此,我调整了表单,将“User”作为模型而不是$model,现在请求被黑了.如果我禁用安全组件,我可以成功登录.这不是一个令人满意的解决方案(我的意思是,我可以选择不验证表单或将’login’定义为解锁操作,但如果我这样做,那么我可能也没有启用安全性登录,对吧? ).

以下是app / Plugin / Users / View / Elements / login.ctp的代码:

<div class="users index">
<h2><?php echo __d('users','Login'); ?></h2>
<fieldset>
    <?php
        echo $this->Form->create('User',array(
            'action' => 'login','id' => 'LoginForm'));
        echo $this->Form->input('User.email',array(
            'label' => __d('users','Email')));
        echo $this->Form->input('User.password','Password')));

        echo '<p>' . __d('users','Remember Me') . $this->Form->checkbox('remember_me') . '</p>';
        echo '<p>' . $this->Html->link(__d('users','I forgot my password'),array('action' => 'reset_password')) . '</p>';

        echo $this->Form->end(__d('users','Submit'));
    ?>
</fieldset>

以下是调用元素的View的代码:

<div id="loginform">
<?php echo $this->element('Users.login'); ?>
</div>

如果我将元素代码复制并粘贴到View中(例如,在apps / Plugin / Users / View / Users / login.ctp中),无论安全性是打开还是关闭,它都可以正常工作,所以我怀疑是否对表单进行了一些修改或安全呼叫是有序的.

任何想法或帮助将不胜感激.

解决方法

我认为问题在于元素本质上是愚蠢的观点 – 它们并不意味着要了解模型.你必须自己传递数据.

我通常把$this-> set(“authUser”,$this-> Auth-> user());在设置auth后,在我的AppController中,这让我可以在任何地方检查当前登录用户的数据,包括元素.

您也可以直接传递数据,如下所示:

<?php echo $this-> element(“Users.login”,array(“user”=> $user));?>

另外,我并没有放弃你的措辞,但登录应该是一个解锁动作,否则用户将如何首先登录?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读