AclNode::node() - 找不到由“Array ( [Aro0.model] => User [Aro0.foreign_key] => ) ”标识的 Aro 节点

2024-02-04

User.php

App::uses('AuthComponent', 'Controller/Component');

类用户扩展AppModel {

public $primaryKey = 'usu_codigo';
public $foreignKey = 'usu_gru_codigo';
public $useTable = 'painel_usuario';

//public $recursive = 0;


public function beforeSave($options = array()) {
    $this->data['User']['usu_senha'] = AuthComponent::password($this->data['User']['usu_senha']);
    return true;
}

public $actsAs = array('Acl' => array(
        'type' => 'requester',
        'enabled' => true
));

public function parentNode() {
    if (!$this->id && empty($this->data)) {
        return null;
    }
    if (isset($this->data['User']['usu_gru_codigo'])) {
        $groupId = $this->data['User']['usu_gru_codigos'];
    } else {
        $groupId = $this->field('usu_gru_codigo');
    }
    if (!$groupId) {
        return null;
    } else {
        return array('Group' => array('id' => $groupId));
    }
}

public $name = 'User';
public $validate = array(
    'usu_email' => array(
        'required' => array(
            'rule' => 'notEmpty',
            'required' => 'create'
        ),
        'unique' => array(
            'rule' => 'isUnique',
            'required' => 'create'
        ),
        'email' => array('rule' => 'email')
    ),
    'usu_senha' => array(
        'required' => array(
            'rule' => 'notEmpty',
            'required' => 'create'
        ),
        'size' => array(
            'rule' => array(
                'minLength',
                '8'
            ),
            'message' => 'Minimum 8 characters long'
        )
    )
);
public $belongsTo = array(
    'Group' => array(
        'className' => 'Group',
        'foreignKey' => 'usu_gru_codigo'
    )
);

}

用户控制器.php

class UsersController extends AppController {

public function beforefilter() {
    parent::beforeFilter();
    $this->Auth->userModel = 'User';
    $this->Auth->allow('add', 'logout');
}

public function isAuthorized() {
    return true;
}

public function bindNode($user) {
    return array(
        'model' => 'Group',
        'foreign_key' => $user['User']['usu_gru_codigo']
    );
}

public function initDB() {
    $group = $this->User->Group;

    // Allow admins to everything
    $group->id = 10;
    $this->Acl->allow($group, 'controllers');

    // allow basic users to log out
    $this->Acl->allow($group, 'controllers/users/logout');

    // we add an exit to avoid an ugly "missing views" error message
    echo "all done";
    exit;
}

public function index() {
    $this->set('users', $this->User->find('all'));
}

public function add() {
    $this->set('groups', $this->User->Group->find('list', array(
                'fields' => array('gru_nome'),
                'order' => array('gru_nome')
    )));
    if ($this->request->is('post')) {
        $this->User->create();
        if ($this->User->save($this->request->data)) {
            $this->Session->setFlash(__('Usuário adicionado com sucesso!'));
            return $this->redirect(array('action' => 'login'));
        }
        $this->Session->setFlash(__('Não foi possível adicionar o usuário!'));
    }
}

public function login() {
    if ($this->request->is('post')) {
        $q = $this->User->query('SELECT usu_codigo FROM painel_usuario WHERE usu_email = "' . $this->request->data['User']['usu_email'] . '" AND usu_senha = "' . AuthComponent::password($this->request->data['User']['usu_senha']) . '";');
        $this->request->data['User']['usu_codigo'] = $q[0]['painel_usuario']['usu_codigo'];
        if ($this->Auth->login($this->request->data)) {//o erro que estava dando era por que não estava passado o request->data com parâmetro
            debug($this->request->data);
            $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash(__('Nome de usuário ou senha incorrestos!'));
        }
    }
}

public function logout() {
    if ($this->Auth->logout()) {
        $this->Session->setFlash(__("Adeus!"));
        $this->redirect($this->Auth->redirect());
    }
}

}

组.php

class Group extends AppModel {

public $primaryKey = 'gru_codigo';
public $useTable = 'painel_grupo';
var $virtualFields = array(
    'id' => 'gru_codigo',
    'name' => 'gru_nome'
);
public $actsAs = array('Acl' => array('type' => 'requester'));

public function parentNode() {
    return null;
}

}

GroupsController.php

<?php
class GroupsController extends AppController {
    public function beforefilter() {
        parent::beforeFilter();
        $this -> Auth -> allow();
    }

    public function index() {
        $this -> set('groups', $this -> Group -> find('all', array('order' => array('Group.gru_nome'))));
    }

    public function add() {
        if ($this -> request -> is('post')) {
            $this -> Group -> create();
            if ($this -> Group -> save($this -> request -> data)) {
                $this -> Session -> setFlash(__('Grupo criado com sucesso!'));
                return $this -> redirect(array('action' => 'index'));
            }
            $this -> Session -> setFlash(__('Não foi possível criar o grupo!'));
        }
    }

}

在 StackOverflow 中已经用 google 搜索过,但没有找到任何可以帮助我的东西。

总是收到错误:AclNode :: node () - 找不到由“Array ([Aro0.model] => User [Aro0.foreign_key] =>)”标识的 Aro 节点

相信不知何故,组的外键没有被设置......但我找不到在哪里设置它。


你有group_id(当然还有用户名和密码)数组中的列,用于登录?我的意思是这条线

$this->Auth->login($this->request->data))

$this->request->data应该包含类似数组

array('username' => 'my_username', 'password' => 'password', 'group_id' => '1')

source: http://hashmode.com/aclnode-node-couldn-t-find-aro-node-identified-by-array-aro0-model-group-aro0-foreign_key-cakephp/30 http://hashmode.com/aclnode-node-couldn-t-find-aro-node-identified-by-array-aro0-model-group-aro0-foreign_key-cakephp/30

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AclNode::node() - 找不到由“Array ( [Aro0.model] => User [Aro0.foreign_key] => ) ”标识的 Aro 节点 的相关文章

  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • 根据数组计数填充复选框

    我是新来的php我已经使用了它的开发php array 我想填充checkboxes根据数组计数 为了做到这一点 我尝试了以下方式 它对我不起作用 有什么方法可以做到这一点 在我的例子中 数组计数 5 所以我相应地需要 5 个复选框
  • Laravel 验证:存在附加列条件 - 自定义验证规则

    在 Laravel 中指定存在验证规则时 是否有一种方法可以引用另一个字段 我希望能够说输入 a 必须存在于表 a 中 输入 b 必须存在于表 b 中 并且表 b 中列 x 的值必须等于输入 a 最好通过例子来解释 public rules
  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • Ubuntu 18.04升级后php7.2-curl无法安装

    今天从 16 04 升级到 18 04do release upgrade d 在升级过程中 我被告知一些软件包将被删除 其中包括 删除 libperl5 22 lxc common perl modules 5 22 php imagic
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • 访问 public_html 级别之外/以下的文件

    如何通过 url 访问文件 home uzair etc index php 即使我运行域 something com 它显示了 home uzair public html index php 这个文件 任何人请帮助我如何访问放置在 ho
  • Javascript 函数与 php 一样吗?

    我在网站上使用 WebIM 提供聊天支持 我希望能够在客户端启动聊天会话时设置一个计时器 如果操作员 技术人员在 x 秒内没有响应 我希望页面重定向到客户端可以留言的另一个页面 有点像 请稍等 我们尝试联系您 这样 如果所有技术人员都太忙或
  • Facebook 中用户的时区是如何编码的

    我需要检查用户的时区 但我找不到它的真正定义 参考API http developers facebook com docs reference api user says 用户的时区与 UTC 的偏移量 现在在维基百科上这些是可能的时区
  • 如何读取 XML 文件并从中获取值以在 PHP 编码的 HTML 页面中显示

    我有一个 XML 文件 其中有一些重复的标签 其中包含不同的值 我需要获取这些值并显示在我的网页中 请帮助我得到这个 如果您使用 PHP5 可以查看 SimpleXML 您可以在这里找到介绍教程 http www w3schools com
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • 通过 AJAX 发送 XML

    我在 jQuery 中创建了一个 xml 文档 如下所示 var xmlDocument
  • PHP/MySQL:如何在网站中创建评论部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不会问 如何使用 PHP MySQ
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • Opencart最低下单价不包括一类

    我正在使用 opencart 并成功为所有交易添加了最低订单价格 这是我使用的代码 div div div class warning Minimum 10 Euro to checkout div 现在我想从中排除一个类别 以便可以购买该
  • 根据通过 AJAX 请求的用户输入重绘 google 图表

    我有一个谷歌图表从我的数据库中提取数据 它可以按我想要的方式工作 根据 URL 中的 get 请求 它从所选表中提取数据 我想根据下拉菜单中选定的表通过 ajax 更新此图表 我无法突破的部分是通过 ajax 获取数据响应 我认为下面的代码
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • Laravel 5.3:护照实现 - {“error”:“invalid_client”,“message”:“客户端身份验证失败”}

    我按照中提到的确切步骤进行操作Laracast Laravel 5 3 的新增功能 Laravel Passport https laracasts com series whats new in laravel 5 3 episodes
  • PHP 时间间隔

    我正在寻找一个看起来应该非常简单的解决方案 但似乎我不能在这里找到任何好的答案 而且我自己似乎无法让它发挥作用 我正在寻找的是设置开始时间 结束时间 然后迭代给定时间间隔之间的一组时间 例如 上午 9 00 下午 5 00 是开始时间 这些

随机推荐