我有一个联赛数据库,我需要在不同联赛的形式中有一个下拉列表......
我有这个工作,但选项值显示为ID号,我需要它显示为league_name字段......
控制器
public function getEdit($id = null)
{
try {
// Get the group information
$tip = Tips::find($id);
$league = Leagues::lists('league_name', 'id');
} catch (TipNotFoundException $e) {
// Redirect to the groups management page
return Redirect::route('tips')->with('error', Lang::get('tips/message.group_not_found', compact('id')));
}
// Show the page
return View('admin/tips/edit', compact('tip','league'));
}
查看刀片
<div class="form-group">
<label for="league" class="col-sm-3 control-label">League</label>
<div class="col-sm-9">
{!! Form::select('league', $league, Input::old('league'), ['class' => 'form-control required', 'id' => 'league', 'placeholder' => 'Select League']) !!}
</div>
</div>
输出为......
<select class="form-control required" id="league" name="league">
<option selected="selected" value="">Select League</option>
<option value="1">FIFA World Cup</option>
<option value="2">FIFA Women's World Cup</option>
<option value="3">FIFA Confederations Cup</option>
<option value="4">Summer Olympic Games (FIFA unofficial)</option>
我希望它输出为......
<select class="form-control required" id="league" name="league">
<option selected="selected" value="">Select League</option>
<option value="FIFA World Cup">FIFA World Cup</option>
<option value="FIFA Women's World Cup">FIFA Women's World Cup</option>
<option value="FIFA Confederations Cup">FIFA Confederations Cup</option>
<option value="Summer Olympic Games (FIFA unofficial)">Summer Olympic Games (FIFA unofficial)</option>
答案 0 :(得分:1)
lists
方法使用指定的键和值构建一个数组。
array lists ( string $values_column [, string $keys_column = null ] );
在您的示例中,您明确将键设置为每行的id列,这就是您获取数值的原因。
只需将通话更改为lists
即可使用league_name
作为键和值,即可获得所需的结果。
$league = Leagues::lists('league_name', 'league_name');
关于检索此字段的现有选择的评论/问题:
利用Input::old()
的第二个参数(或者它是较短的帮助器old()
,如果以前提交的数据不存在,您可以指定一个值。
old('league', $value_if_old_isnt_set);
这将在页面加载时预先选择$value_if_old_isnt_set
字段,然后使用表单中的值submit填充它。
在评论中回答,但放在这里,以便它可以被接受,它将从未答复的列表中消失