gpt4 book ai didi

cakephp - 使用条件过滤 HABTM 相关模型

转载 作者:行者123 更新时间:2023-12-04 18:10:55 26 4
gpt4 key购买 nike

序言:几天前我请 question 解决 HABTM 过滤器,即使有教程我也无法做到,所以“Obi Kwan Kenobi 你是我唯一的希望”。

我想要实现的目标:通过在 StaffStaffgroup 中使用的 GroupID 过滤员工

我有以下表格布局

  • 人员(一个人可以属于多个组)
  • staff_staffgroups(HABTM 链接表)
  • 员工组(有组名)

  • 变量 $tmp 为我提供了一个工作数组,但问题是 Staff 是 StaffStaffgroups 的子对象。我可以解析并重新组装一个数组,但这不是一个好的解决方案。
    所以我想 使用 Staff 上的条件(参见注释行),但随后出现错误 1054“未找到列:1054 未知列”。我尝试绑定(bind)和取消绑定(bind),但没有结果。
    $group_id = 2;
    $tmp = $this->Staff->StaffStaffgroup->find('all',
    array('conditions' => array(
    'StaffStaffgroup.staffgroup_id' => $group_id,
    'Staff.isActive =' => "1",
    'Staff.last_name LIKE' => "%$name%",
    )
    )
    );

    debug($tmp);
    //$tmpConditions['AND'][] = array('StaffStaffgroup.staffgroup_id' => $group_ids);

    编辑:

    我尝试了条件和可控制的行为,但不幸的是它根本没有过滤任何东西
        $this->Staff->contain(array('StaffStaffgroup'));
    $this->paginate = array('StaffStaffgroup' =>array(
    array('conditions' => array(
    'StaffStaffgroup.staffgroup_id' => '2'
    )
    )
    )
    );
  • 我添加到所有模型中: public $actsAs = array('Containable');
  • 我也尝试了内部连接,但没有过滤:
     $this->paginate = array( 
    'conditions' => array('StaffStaffgroup.staffgroup_id' => 2 ),
    'joins' => array(
    array(
    'alias' => 'StaffStaffgroup',
    'table' => 'staff_staffgroups',
    'type' => 'INNER',
    'conditions' => 'StaffGroup_id = StaffStaffgroup.staffgroup_id'
    )
    )

    );
  • 最佳答案

    您不能为此使用 Containable 行为。 checkout sql 转储,您将看到查询已完成。

    我会分两步做

    从 StaffStaffgroup 获取属于您想要的组的员工 ID

    $staff_ids = $this->Staff->StaffStaffgroup->find(
    'all',
    array(
    'conditions' => array('StaffStaffgroup.staffgroup_id' => $group_id, ),
    'recursive' => -1,
    'fields' => array('StaffStaffgroup.staff_id'),
    )
    );

    然后使用之前的结果获取所有员工
    $staffs = $this->Staff->find(
    'all',
    array(
    'conditions' => array(
    'Staff.id' => $staff_ids,
    'Staff.isActive =' => "1",
    'Staff.last_name LIKE' => "%$name%",
    ),
    )
    );

    关于cakephp - 使用条件过滤 HABTM 相关模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14691452/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com