此问题在此处已有答案:
Laravel put array into selectbox(4个答案)
5小时前关门了。
我有这个数组(我用函数dd()显示它),有多个数据,我想在输入字段中只显示“name”数据。
这就是现在的样子
以及我希望被显示的姓名。
这是我在Controller中的函数,我把数据推到页面上。
private function needs()
{
$grades = Grade::all()->pluck('name', 'id')->toArray();
$subjects = Subject::all()->pluck('name', 'id')->toArray();
$students = User::students()->get()->pluck('name', 'id')->toArray();
$teachers = User::teachers()->get()->pluck('name', 'id')->toArray();
$goals = Goal::all()->pluck('name', 'id')->toArray();
$statuses = Status::all()->pluck('name', 'id')->toArray();
$formats = Format::all()->map->only(['id', 'name', 'students'])->values()->toArray();
return compact('grades', 'subjects', 'students', 'teachers', 'goals', 'statuses', 'formats');
}
又有表格跃然纸上:
<div class="form-group">
{{ Form::label('format_id', 'Формат', ['class' => 'col-sm-3 control-label no-padding-right']) }}
<div class="col-sm-8">
{{ Form::select('format_id', [null => '--не выбран--'] + $formats, $data->format_id ?? 0, ['class' => 'form-control', 'id' => 'format_id']) }}
</div>
</div>
3条答案
按热度按时间uurity8g1#
您可以在控制器的
$format
变量下使用一个小循环来处理这个问题:或者将此行更改为:
f87krz0w2#
你需要转换你的$formats数组,使其具有键“id”和值“name”:
doinxwow3#
你可以使用mapWithKeys()集合函数来做到这一点。
以将数组格式化为[id =〉name]为例:
文件:https://laravel.com/docs/9.x/collections#method-mapwithkeys