美好的一天,我是 laravel 的新手,我仍在学习中。
我的问题是这段代码有效,但我觉得它没有必要,可以写得更好,请有人帮忙,切换案例会更好,或者有更好的方法来写这个,请向我解释,谢谢。
>debtorscontroller.php
$debtors_created_at = $debtors->created_at;
$now = Carbon::now();
$created_at_in_days = $debtors_created_at->diffInDays($now);
if ($created_at_in_days >= 0 and $created_at_in_days <= 10){
Debtor::whereId($debtorid)->update(['collection_level' => 'Pre Collection']);
}elseif ($created_at_in_days >= 11 and $created_at_in_days <= 30){
Debtor::whereId($debtorid)->update(['collection_level' => 'Collection Level 1']);
}
elseif ($created_at_in_days >= 31 and $created_at_in_days <= 60){
Debtor::whereId($debtorid)->update(['collection_level' => 'Collection Level 2']);
}
elseif ($created_at_in_days >= 61){
Debtor::whereId($debtorid)->update(['collection_level' => 'Collection Level 3']);
}
这只是检查债务人是否被创建,如果它是 1-10 天,它会改变
它的水平
天 1-10为预收 11-30为收藏等级1 31-60是收藏等级2 61-90+为收藏等级3
这是我的债务人表 collection_level 中的一个字段
答案 0 :(得分:2)
你可以使用 switch 语句来做同样的事情 -
$debtors = Debtor::whereId($debtorid);
$created_at_in_days = $debtors->created_at->diffInDays(Carbon::now());
switch ($created_at_in_days) {
case $created_at_in_days >= 0 and $created_at_in_days <= 10:
$debtors->update(['collection_level' => 'Pre Collection']);
break;
case $created_at_in_days >= 11 and $created_at_in_days <= 30:
$debtors->update(['collection_level' => 'Collection Level 1']);
break;
case $created_at_in_days >= 31 and $created_at_in_days <= 60:
$debtors->update(['collection_level' => 'Collection Level 2']);
break;
case $created_at_in_days >= 61:
$debtors->update(['collection_level' => 'Collection Level 3']);
break;
default:
$debtors = $debtors->get();
答案 1 :(得分:0)
$debtors = Debtor::whereId($debtorid);
$created_at_in_days = $debtors->created_at->diffInDays(Carbon::now());
$caption ="";
switch ($created_at_in_days) {
case $created_at_in_days >= 0 and $created_at_in_days <= 10:
$caption = 'Pre Collection';
break;
case $created_at_in_days >= 11 and $created_at_in_days <= 30:
$caption = 'Collection Level 1';
break;
case $created_at_in_days >= 31 and $created_at_in_days <= 60:
$caption = 'Collection Level 2';
break;
case $created_at_in_days >= 61:
$caption = 'Collection Level 3';
break;
default:
$caption = '';
}
$debtors = $caption ? $debtors->update(['collection_level' => $caption]) : $debtors->get();