找到条件并且不要工作+ cakephp

Fur*_*ury -1 cakephp cakephp-1.3

此功能正在处理OR条件.我需要这个来处理AND条件.任何帮助:

$ands = array();
foreach ($array_training_id as $id) {
        $ands[] = array('TrainingsUser.training_id' => $id);
}
$conditions = array('AND' => $ands);
$users = $this->TrainingsUser->find('all', array('conditions' => $conditions));
Run Code Online (Sandbox Code Playgroud)

我想写一个查询AND条件,如下所示:

SELECT user_id FROM trainings_users WHERE training_id = 172 AND training_id = 174
Run Code Online (Sandbox Code Playgroud)

获取第一个ID时,此查询正在运行.
表说明:我有3个表Training - User - Training_users ... training_users表有traing_id和user_id我想要的东西是这样的东西: SELECT user_id FROM Training_users WHERE training_id = 172 AND training_id = 174...它甚至在SqlMyadmin中也不起作用

在此输入图像描述


当我给training_id 172和training_id 174时我需要的是它必须仅返回用户150

mar*_*ark 5

为什么你的$ array_project_id首先是一个字符串(除了命名冲突^^)?它应该是一个id和蛋糕阵列将自动能够开箱即用.

好吧,无论如何:

$ids = explode(',', $array_project_id);
// now its a clean array

$users = $this->Training->find('all', array('conditions' => 
    array('Training.Project_id' => $ids)
));
Run Code Online (Sandbox Code Playgroud)

在您的评论之后,我仍然没有看到使用AND的价值.但到底是什么,你走了:

$ands = array();
foreach ($ids as $id) {
    $ands[] = array('Training.Project_id' => $id);
}
$conditions = array('AND' => $ands);
$users = $this->Training->find('all', array('conditions' => $conditions));
Run Code Online (Sandbox Code Playgroud)

瞧.但它仍然无法运作.

您似乎正在使用一些HABTM关系(您应该在开始时提供这一重要信息!).然后你需要查询中间模型/关系,以便在这里有两个belongsTo-relations(=左连接).

您真正需要的是什么(再次:您为什么只发布相关关系以及有关Training_users的信息?)是查询中间表"Training_users",其中包含belongsTo方向(左连接到用户).而最重要的事实是:使用OR而不是AND.这将获得您想要的结果.