php - 编辑时从下拉列表中显示其他表格数据
问题描述
是否可以从其他表中获取数据?
假设在创建表中,我从流派表中获取所有信息并在下拉列表中显示所有数据
<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>
在编辑页面中,我也想显示它,但是如何将它显示为我在创建时选择的流派?
解决方案
在我看来,你应该使用$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
$movie
if
推荐阅读
- android - Kotlin - AlertDialog 中的中心消息
- python - 无法在 Anaconda 的虚拟环境中安装 Spyder
- c++ - Boost::beast:多个 async_write 调用正在触发一个断言错误
- ember.js - 如何在 Ember 中导入 ZeroEx npm 模块
- stack - postscript 堆栈溢出在 mac 和 linux 上不同,并受字体设置的影响
- javascript - 如果值存在于所有数组中,则返回 true
- go - os.Read() 是怎么工作的?戈朗
- php - 使用 Laravel 和 Mongodb 进行多 Jwt 身份验证
- ajaxcontroltoolkit - 使用 ajaxToolkit:AjaxFileUpload 上传 MOV 文件时 AjaxFileUpload.axd 失败
- javascript - 来自多方的数据