Laravel 5.2 - 让这更好的提示?

时间:2016-02-15 03:37:17

标签: laravel laravel-5

我觉得我在Eloquent上获取模型的方式很奇怪。我想知道是否有任何方法可以使我当前的代码看起来更好?就这个: enter image description here

是的我可以循环以获得更少的代码,但我获取模型的方式是我主要关注的问题,我的意思是,无论如何我可以将调用减少到1而不是12?

谢谢!

2 个答案:

答案 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;
 }