gpt4 book ai didi

mysql - Yii 按关系条件过滤模型的范围

转载 作者:行者123 更新时间:2023-11-29 12:37:29 26 4
gpt4 key购买 nike

我有一个与 ScheduleElement 具有 HAS_MANY 关系的模型组。需要创建过滤组的范围:对于 ScheduleElement 的所有字段组合,组必须至少有一个 ScheduleElement:week_number (1-2)、week_day (1-7)、semester_id = 1

最佳答案

我自己找到了解决方案,源代码:https://github.com/sc0rp1d/schedule/blob/e510ad72b95e9491af9ff2f5692d9b0e469140f7/models/Group.php#L95

public function filled($bool = true)
{
$schedule_table = ScheduleElement::model()->tableName();
$semester = Semesters::model()->actual();
$criteria = $this->getDbCriteria();
$criteria->params[':semester_id'] = $semester->id;
for ($i = 1; $i <= 2; $i++) {
for ($j = 1; $j <= 6; $j++) {
$sql = "(SELECT COUNT(*) FROM `$schedule_table`
WHERE `$schedule_table`.`week_number` = $i
AND `$schedule_table`.`week_day` = $j
AND `$schedule_table`.`group_id` = `t`.`id`
AND `$schedule_table`.`semester_id` = :semester_id) "
. ($bool ? ">" : "=") . " 0";
$criteria->addCondition($sql, $bool ? 'AND' : 'OR');
}
}
return $this;
}

关于mysql - Yii 按关系条件过滤模型的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26554869/

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