【问题标题】:Undefined offset: 2 in Laravel 5未定义的偏移量:Laravel 5 中的 2
【发布时间】:2018-10-20 18:03:45
【问题描述】:

我想保留多选中的值,但是它显示未定义的偏移量:2。刀片文件的代码如下。

<select multiple="multiple" name="warehouseId[]" id="warehouse" class="form-control" style="width:100%;">
@if($warehouseData)
  @foreach ($warehouseData as $key => $warehouse)
    <option value="{{$warehouse->id}}" >{{$warehouse->name}} {{$adminUserWarehouseSelectedData[$key]->id}}</option>
  @endforeach
@endif
</select>

【问题讨论】:

  • 你在哪里得到错误?在 JS 或 Lraravel 中也显示该代码。
  • 在 Laravel 中,我得到了这个错误
  • 这是一个简单的、未定义的 adminUserWarehouseSelectedData 索引
  • 添加控制器代码...
  • 在您的控制器中,在返回视图之前,添加“dd($adminUserWarehouseSelectedData)”并查看它是否有索引 2。我 99% 确定它没有,所以你可以寻找你的逻辑错误

标签: laravel laravel-5


【解决方案1】:

添加一个@isset 指令

<select multiple="multiple" name="warehouseId[]" id="warehouse" class="form-control" style="width:100%;">
   @if($warehouseData)
      @foreach ($warehouseData as $key => $warehouse)
         @isset($adminUserWarehouseSelectedData[$key]->id)
           <option value="{{$warehouse->id}}">
            {{$warehouse->name}} {{$adminUserWarehouseSelectedData[$key]->id}}
           </option>
         @endisset
      @endforeach
  @endif
</select>

【讨论】:

  • 错误可能出在逻辑上,在这种情况下,它应该被解决,而不仅仅是隐藏
  • @NoOorZ24 我同意。这是她解决问题的第一步
【解决方案2】:

我认为您在这里接受的答案并非 100% 正确。 $adminUserWarehouseSelectedData 中有多个来自控制器的数据。正如你在这里使用了multiple select,我假设是这样的。

所以这是正确的做法。

<select multiple="multiple" name="warehouseId[]" id="warehouse" class="form-control" style="width:100%;">
@if($warehouseData)
  @foreach ($warehouseData as $key => $warehouse)
    <option value="{{$warehouse->id}}" >{{$warehouse->name}} @foreach($adminUserWarehouseSelectedData as $data) $data->id  @endforeach {{$warehouse->name}}</option>
            @endforeach</option>
  @endforeach
@endif
</select>

我知道您没有使用此代码,但对于 其他用户,正确答案是最可取的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 2013-01-25
    • 2021-07-12
    • 2014-06-25
    • 1970-01-01
    • 2016-10-30
    • 2016-01-07
    • 2017-05-18
    相关资源
    最近更新 更多