查找与数组

时间:2016-02-22 22:18:22

标签: arrays laravel laravel-5.1

我有一个表单,用户可以选择一个或多个复选框,如下所示:

{!! Form::Label('faults', 'Please select one of the following that best describes your device') !!}
                                            <div class="form-group">                                            
                                                @foreach($faults as $fault)
                                                <div class="col-md-4">
                                                    <span><i class="fa fa-question-circle" rel="popover" data-content="{{$fault->fault_tooltip}}"></i></span>
                                                    <label class="checkbox-inline">
                                                    <input id="faults" type="checkbox" name="faults[]" value="{{$fault->id}}">{{$fault->fault}}
                                                    </label>
                                                </div>
                                                @endforeach
                                            </div>

现在在我的控制器中,我得到了这样的错误输入:

$faults = Input::get('faults');

这会返回一个数组,其中包含每个错误的ID,如下所示:

    array:2 [▼
  0 => "37"
  1 => "36"
]

我需要遍历数组,找到我的故障表中的每一行,匹配数组中的每个id,并获得其他值,如$ fault-&gt; name和$ fault-&gt; price。

我知道这很容易,但我从编码开始,我无法理解。

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

$slectedFaults = Input::get('faults');

如果您在\ App \目录中有故障模型,请按照

进行操作
$faults = Faults::whereIn('id',$slectedFaults)->get();

或通过以下方式进行

 $faults = App\DB::table('faults')->whereIn('id',$slectedFaults)->get();

$ faults已从您的数据库中选择数据,然后执行其余操作

$nameArray = [];
foreach($faults as $fault) {
  $nameArray[] = $fault->name;
  //do your thing here
}
print_r($nameArray); //it will print all fault names

答案 1 :(得分:0)

你有Faults型号吗?如果是的话:

$faults = Faults::findMany(Input::get('faults'));

foreach($faults as $fault) {
   //do your thing here
}

否则使用表格:

$faults = DB::table('faults')
  ->select()
  ->whereIn('id',Input::get('faults'))
  ->get();

foreach($faults as $fault) {
   //do your thing here
}