我试着提取截止月份,学生没有在他的个人资料中提交费用这个节目就像你的费用在本月到期,例如 - 如果学生在2月和1月没有支付他/她的费用那么他的您需要在2月和1月支付费用的帐户请提交费用。我可以取得所有未提交费用的学生但是如何显示月份(< =当月)所有上个月的费用
这是我的个人资料代码
public function show($reg_no = null)
{
$s = Student::where('reg_no', $reg_no)->with('courses','states','sections','city','ccity','sstates')->first();
return view('students.student',compact('s'));
}
对于未在当月提交费用的学生所有学生
$dt = Carbon::now();
$query = Student::where('status',1)->whereDoesntHave('subscriptions', function ($queryt) use($dt) {
$queryt->whereMonth('created_at','=',$dt->month);
})->with('courses')->paginate(15);
答案 0 :(得分:0)
我将向您展示一个示例,但不要只复制粘贴,因为此代码只是为了帮助您了解如何实现它。您需要进行一些更改才能适合您的应用。
$messages = array();
foreach ($Student->subcriptions as subcription) {
if ($subcription->late_fee != null) {
$month = $subcription->month->month(); // I'm not sure if Carbon will handle this part. If not, you'll need to do an explode of $subcription->month then take the $month[1]...
if ($month == 1) {$month = 'January';}
if ($month == 2) {$month = 'February';}
... //Do it for every month...
$message = 'Your fee are due for '.$month; //Or you can only push the month then into the view then implode the array.
array_push($messages, $message);
}
}
在您的视图中,如果您使用的是刀片,则只需在要显示消息的位置执行此操作。不要忘记将$ message传递给视图。
@foreach($messages as $message)
<span>{{$message}}</span>
@endforeach
有多种方法可以做你想要的。但这将显示每个月学生迟到的时间不为空。现在让它适应你的代码。
如果您不想要这样的话,请不要忘记:
Your fee are due for January.
Your fee are due for February.
Your fee are due for Mars.
....
查找messages数组的内爆而不将Your fee are due for
添加到循环中,然后不要将for each循环用于视图,只需显示新的内爆变量。