- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 Yii2 basic。我有一个名为 group savingdetails 的表,它存储每个组的每月储蓄。
假设我有一个小组,其成立日期是2017-08-08。现在,在为该组创建每月储蓄记录时,我将选择该组,输入年份为 2017 年,月份为 8 月,并输入所有值,这将为我提供 8 月的期末余额并保存在数据库中。
现在,当用户想要输入 10 月份而不是 9 月份的数据时,他可以这样做,因为系统会将 8 月份的期末余额显示为期初余额,并且他将为 10 月份执行与 8 月份相同的操作。
现在,在输入 10 月数据后,用户将无法输入 9 月的记录。
我有该组 2017 年以及 8 月、9 月、10 月、11 月和 12 月的记录。
发生的情况是,当我输入年份为 2018 年、月份为 1 月时,会显示不应显示的警报消息。
此处保存记录时条件失败。
$group = Yii::$app->db->createCommand('SELECT *
FROM groupsavingdetails
where groupsavingdetails.GroupId=:id
ORDER BY groupsavingdetails.GroupSavingDetailsId DESC LIMIT 1')
->bindValues([
':id' => $model->GroupId,
])->queryAll();
$year2=0;
$month3=0;
foreach($group as $groups) {
$model->OpeningBalance=$groups['ClosingBalance'];
$model->TotalValueofLoanGiven=$groups['TotalValueofLoanGiven'];
$model->LoanRepaidUptilNow=$groups['LoanRepaidUptilNow'];
$model->TotalValueOfLoanOutstanding=$groups['TotalValueOfLoanOutstanding'];
$year2=$groups['Year'];
$month3=$groups['Month'];
}
$identity = \Yii::$app->user->identity;
$eid = $identity->id;
$model->EmpId = $eid;
if($model->LoanGiven!=0) {
$model->TotalValueofLoanGiven+=$model->LoanGiven;
}
if($model->LoanRecovery!=0) {
$model->LoanRepaidUptilNow+=$model->LoanRecovery;
}
$model->TotalValueOfLoanOutstanding = $model->TotalValueofLoanGiven-$model->LoanRepaidUptilNow;
$previousMonth = $model->Month - 1;
if ($previousMonth == 0) {
$previousMonth = 12;
$year2--;
}
// Here the condition is getting failed.
if ($model->Year >= $year2 && $model->Month > $previousMonth) {
$model->ClosingBalance=($model->OpeningBalance+$model->TotalSaving+$model->LoanRecovery+$model->LoanInterest+$model->Fine+$model->BankInterest+$model->BankLoan-$model->Expenses-$model->LoanGiven);
$model->save();
} else {
echo "<script language='javascript'>";
echo "alert('Records greater than selected year and month exists.')";
echo "</script>";
return $this->render('create', [
'model' => $model,
]);
}
我应该改变什么?
最佳答案
让我们看看你的情况
$model->Year >= $year2 && $model->Month > $previousMonth
在您的条件中,有两个用 和 连接的表达式 (&&
)。这意味着两个表达式都必须为真,整个条件才为真。
让我们有$year2 = 2017
和$previousMonth = 10
(十月)。
现在,您将 $model->Year 设置为 2018 年,$model->Month = 1(一月)。条件中的第一个表达式是 2018 >= 2017
。这部分是true
。但第二个表达式是 1 > 10
,它是false
。那么 true && false
将得到 false
。
您实际需要做的是仅在年份相同时检查月份。所以你要寻找的条件是:
$model->Year > $year2 || ($model->Year == $year2 && $model->Month > $previousMonth)
这个条件将像这样工作:
Year = 2018
Month = 1
2018 > 2017 || (2018 == 2017 && 1 > 10)
true || (false && false)
true || false
true
Year = 2017
Month = 11
2017 > 2017 || (2017 == 2017 && 11 > 10)
false || (true && true)
false || true
true
Year = 2017
Month = 9
2017 > 2017 || (2017 == 2017 && 9 > 10)
false || (true && false)
false || false
false
关于php - 如何通过输入特定月份的数据来限制用户,Yii2中存在大于特定月份的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59088569/
我不太确定为什么较大字符串(“cat”和“dog”)的答案不一致。我正在用链接列表和模板的使用做一些事情。我的好奇心促使我修改模板和函数重载。如果有人能解释发生了什么,我将不胜感激。谢谢你。 #inc
目前我必须编写这样的查询 SELECT * FROM table WHERE value1 > 5000 OR value2 > 5000 OR value3 > 5000 OR value4 > 5
我想创建一个如下所示的查询,但我不确定如何正确编码, 我希望它在开始时间的 1 小时内返回所有预订,这是我想出的: SELECT BookingId, StartTime FROM Booking W
这个问题已经有答案了: How to check if a number is between two values? (12 个回答) 已关闭 6 年前。 我目前正在 Codecademy 上学习
我想验证用户输入。如果用户输入的数字大于 3,则应抛出错误“Too high”,如果小于 0.15,则应抛出“Too low”错误。如果它在 3 到 0.15 之间,那么它应该显示“好的”。 我的代码
我有一个拖动脚本,我在其中拖动 div.slider,我正在跟踪 div.slider 的“左”值,并在它大于 68 时让它淡出,但问题是它当它达到 6 而不是 68 时淡出。如果我将数字更改为 85
是否有一种常见的模式如何在数据库(postgresql)中存储这样的条件,然后以简单的方式从数据库中获取这些数据,并在前端将其与我们在前端的值 SE 进行比较(以获得正确的“值” "): condit
如何大于/小于内部工作 如果我将 5 与 100 与 5 与 2,147,483,647 (Integer.MAX_VALUE) 进行比较,性能会受到多大影响 5 < 100 and 5 < Inte
当我运行此查询时它有效 SELECT sum( amount ) AS balance FROM balance WHERE amount >= 100 但是当我想过滤用户 ID 时,它返回 NULL
我有下表: account(id, balance, bank_branch) 我想选择账户余额大于其 bank_branch 平均余额的所有账户 我试过了 Select id from accoun
你们有没有人知道如何搜索所有大于指定数字的数字? 例如:所有单据编号>65 我试过这样:documentNumber: [65 TO *] 但我收到异常,因为 lucene 期望解析一个没有 * 的数
我正在使用 Prolog 算法,并且有一个生成抽象语法树的程序,例如 plus(num(1),num(2))这只是 1+2 .这是通过使用 DCG 来完成的。在这个例子中 plus(num(1),nu
是否使用 Sin(720) 或 Cos(1440)(以度为单位的角度)? 无论是在计算机编程中还是在任何其他情况下? 一般来说,是否有任何角度的 Sin/Cosine/Tan 使用 大于360? 在物
我发现了一些与此相关的问题,但没有一个真正回答了我的问题。 我有一个像这样的表格文件: 2 10610 0 0 0 0.0105292 2 10649 0 0 0
我是 Prolog 的新手,我正在尝试解决这个练习: Define a predicate greater_than/2 that takes two numerals in the notation
我想选择具有出现次数的不同键,此查询似乎有效: SELECT ItemMetaData.KEY, ItemMetaData.VALUE, count(*) FROM ItemMetaData GROU
我需要存储和使用大于 ULLONG_MAX 的数值。 我需要对这些值进行算术运算,所以我认为存储为 char** 不是一个选项。 在这些情况下,有没有办法动态创建额外的 long 前缀? 谢谢大家。根
我是 Prolog 的新手,我正在尝试解决这个练习: Define a predicate greater_than/2 that takes two numerals in the notation
处理已知大小但大于 64 位的位掩码(即执行所有位操作)的最有效的数据结构是什么? 字节[]? 大整数?完全是别的东西吗? 需要与 Java 7 兼容,并且对于诸如此类的事情应该很快(或者至少与合理预
编辑:抱歉进行了许多编辑。我自己都忘记写了什么了。 我使用 JPanel,将 BoxLayout 作为 JFrame 的根面板。我向此根面板添加了另外两个面板:带有 FlowLayou 的 Butto
我是一名优秀的程序员,十分优秀!