Laravel,检查值是否在某个集合中(刀片中)

时间:2019-07-09 21:49:04

标签: laravel

我有2个集合,$all具有所有值(5),而$some仅具有2个值。我正在尝试这样做: 对于$ all的每个值,如果循环中的该项目在$ some集合中,则将该$ some项的值(类似的东西)输入:

@foreach($all as $item)
    <div>
        @if(in_array($item->id, $some))
            <input type="number" value="{{ Here I need to put the value of $some where id of some be teh same of $all }}">
        @else
            <input type="number" value="0">
        @endif
    </div>
@endforeach

我不知道如何阅读和确定刀片中的所有内容。

编辑:我正在尝试这样的事情:

@if(in_array($item->id, $some))
    <input type="number"  value="{{ $some->find($item->id)->value }}">

2 个答案:

答案 0 :(得分:1)

我不知道$some上的特定字段是什么,但是您可以执行以下操作(替换需要比较或显示的字段):

@if(in_array($item->id, $some->pluck('id')->toArray()))
    <input type="number" value="{{ $some->where('id', $item->id)->first()->fieldYouWant}}">
@else
    <input type="number" value="0">
@endif

基本上,将$some ids放入数组,比较当前循环的$item->id(来自$all),如果命中,则提取特定的$some对象匹配(来自$some的ID和来自当前id的{​​{1}}的ID),并从调用所需字段的任何位置获得所需的值。

答案 1 :(得分:1)

就我而言,我试图在一组复选框输入上执行此操作,以防有人需要这种方式:

<input type="checkbox" name="guides[]" value="{{ $item->id }}"
    {{ in_array($item->id, $some->pluck('id')->toArray()) ? 'checked' : '' }} >