现在,我有一个唯一正确的输出,这个数字是一个step_id,但它没有给我所有的ID。就像我说的那样,我希望当我的步骤表中的user_id是正确的id类型时,调试会在屏幕上打印/回显所有step_id。
以下调试输出:
app / controllers / steps_controller.php(第109行)
1323
注意(8):未定义的偏移量:1 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
注意(8):未定义的偏移量:2 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
注意(8):未定义的偏移量:3 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
注意(8):未定义的偏移量:4 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
注意(8):未定义的偏移量:5 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
注意(8):未定义的偏移量:6 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
注意(8):未定义的偏移量:7 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
注意(8):未定义的偏移量:8 [APP / controllers / steps_controller.php,第109行] app / controllers / steps_controller.php(第109行)
更新:
我不确定这是不是错误,但在我的foreach循环中我有'Step.user_id',然后当命令指向Step表时,我改变了它!但它仍然无效。
使用下面的新代码,或多或少相同的代码。当步骤表中的用户ID与仅具有正确角色的用户ID匹配时,我使用了debug命令来打印所有步骤ID。 →3。但是调试只给我一个返回的结果!然后'未定义的偏移:'1到8。
我做错了什么想法?请??
foreach($getUserIds as $k=>$data) {
//$StepConditions = ;
$getStepIds = $this->Step->find('all', array('conditions' => array('user_id' => $getUserIds[$k]['User']['id'])));
debug($getStepIds[$k]['Step']['id']);
}
我在这里搜索过,但我似乎找不到任何关于此问题的人,所以我希望你能帮忙!
好的,我的功能的主要目的是从我的数据库中获取所有“步骤”,但仅当user_id为> 3.
我是CakePHP的新手,所以我对这些find命令不太满意。现在,就目前而言,如果我调试$ getSteps,它只给我0,1& 2个编号的数组。主题中的所有信息都是正确的,但我知道用户组完成了三个以上的步骤。
然后我调试,$ getUserIds,它给了我想要的所有用户ID但不是我所有这些用户完成的所有步骤,只是我说的三个。
欢迎任何希望!
非常感谢格伦
function Breakdown($id = null) {
$getUserIds = $this->Step->User->find(
'all',
array(
'conditions' => array('role_id' => 2)
)
);
foreach ($getUserIds as $k=>$data) {
$getSteps = $this->Step->find(
'all',
array(
'conditions' => array('Step.user_id' => $getUserIds[$k]['User']['id'])
)
);
debug($getSteps);
}
die();
} //End of Breakdown() function
答案 0 :(得分:0)
您可以添加">"在你的条件下获得user_id大于3的所有步骤:
$getSteps = $this->Step->find('all', array('conditions' => array('Step.user_id >' => 3));
答案 1 :(得分:0)
正如你在问题中所说的那样:“我的功能的主要目的是从我的数据库中获取所有'步骤',但仅当user_id为> 3时
以下是代码示例:
function Breakdown($id = null) {
$this->User->bindModel(array(
'hasMany' => array(
'Step' => array(
'className' => 'Step',
'foreignKey' => 'user_id'
)
)
)
); //dynamically bind model
$userWithSteps = $this->User->find('all', array('conditions' => array('User.role_id' => 2)));
}
pr(userWithSteps );
die();
} //End of artistsBreakdown() function
完成了。您不需要使用foreach循环。请问它是否对你不起作用。
答案 2 :(得分:0)
没关系,
我已经解决了我的问题!我认为用户被分配到每个步骤,但它们只被分配给项目,因此它不起作用。
我要做的是创建一个新表并为每个用户构建指向每个步骤的链接。
许多人非常感谢所有人给予我的帮助和支持!
Glenn Curtis。