我觉得我在Eloquent上获取模型的方式很奇怪。我想知道是否有任何方法可以使我当前的代码看起来更好?就这个:
是的我可以循环以获得更少的代码,但我获取模型的方式是我主要关注的问题,我的意思是,无论如何我可以将调用减少到1而不是12?
谢谢!
答案 0 :(得分:1)
好的,你可以这样做Info::get(['encoded']);
你将得到编码字段的数组,循环并根据你的要求制作它。
更具体地遵循这一点。
<强> 被修改 强>
$result =Info::whereMonth('encoded','>=','01')->whereMonth('encoded','<=','12')->get()->first();
此处->first();
会将数组移除到数组结构中。将返回[.....]
而不是[0=>[....] ]
循环你的结果
$months = [];
foreach($result as $month){
if($month == '01'){
$months['jan'] = $month;
}
if($month == '02'){
$months['feb'] = $month;
}
if($month == '03'){
$months['mar'] = $month;
}
//and so on
}
答案 1 :(得分:1)
@Qazi使foreach更短,如果语句允许进行一些重构,则更少
$months_keys = ['jan','feb','mar',....];
$months = []
foreach($result as $month){
$key = $months_keys[(int)$month - 1];
$months[$key] = $month;
}