首页 > 解决方案 > 编辑时从下拉列表中显示其他表格数据

问题描述

是否可以从其他表中获取数据?

假设在创建表中,我从流派表中获取所有信息并在下拉列表中显示所有数据

      <select name="mov_genre" id="mov_genre" class="form-control input-sm">
          <option value="">类型</option>
               @foreach(App\Genre::all() as $gData)
          <option value="{{$gData->gen_title}}">{{$gData->gen_title}}</option>
               @endforeach
      </select>

在编辑页面中,我也想显示它,但是如何将它显示为我在创建时选择的流派?

标签: phplaravel

解决方案


在我看来,你应该使用$gData->id每个value选项。因为通常您将外键存储id为外键,而不是标题之类的东西。

但是对于您的问题本身:您可以简单地添加一个if语句,在foreach循环中检查当前项目是否是选定的项目。在我的示例中,我假设您有一个变量$movie,它是您要编辑的条目。

  <select name="mov_genre" id="mov_genre" class="form-control input-sm">
      <option value="">-- SELECT GENRE --</option>
      @foreach(App\Genre::pluck('gen_title', 'id') as $key => $value)
          <option value="{{ $key }}" {{ optional($movie)->genre_id === $key ? 'selected' : '' }}>{{ $value }}</option>
      @endforeach
  </select>

请注意,我换成App\Genre::all()App\Genre::pluck('gen_title', 'id'). 这只会加载这两个字段gen_title并将id它们放在一个数组中,其中id键和gen_title值是。这样做是为了获得更好的性能,因为我们不会加载不必要的数据。

另请注意,未设置时optional($movie)将返回。这样做是为了减少奇怪的陈述,并且是常见的做法。null$movieif


推荐阅读