我目前正在开发一个带搜索功能的项目。我从我的数据库中获取了一些数据。我通过我的控制器绑定这些数据。并用它填充我的下拉列表,包括默认选择项。是否可以将select中的值设置为我从数据库中检索的数据?
//浏览器
<select id="game_kind" name="game_kind">
<option value="" selected="selected">Make your choice..</option>
<option value="1">puzzle</option>
<option value="4">dice game</option>
<option value="5">card game</option>
<option value="6">board game</option>
</select>
//控制器
public function Filter()
{
$game_kinds = GameKind::where('game_kind_name_en','!=','')->lists('game_kind_name_en');
return View::make('web.spelzoeken', compact('game_kinds');
}
//查看
{{ Form::open(['route' => 'web.search.post']), PHP_EOL }}
{{ Form::label('game_kind',Lang::get('web-zoeken.search-game'))}}
{{ Form::select('game_kind', ['' => Lang::get('web-zoeken.search-option')] + $game_kinds)}}
{{ Form::submit(Lang::get('web-zoeken.search-button'), ['class' => 'button tiny']), PHP_EOL }}
{{ Form::close(), PHP_EOL }}
//结果我真的想要
<select id="game_kind" name="game_kind">
<option value="" selected="selected">Make your choice..</option>
<option value="puzzle">puzzle</option>
<option value="dice game">dice game</option>
<option value="card game">card game</option>
<option value="board game">board game</option>
</select>
提前致谢!
答案 0 :(得分:2)
改变这个:
$game_kinds = GameKind::where('game_kind_name_en','!=','')
->lists('game_kind_name_en');
进入这个:
// SELECT 'field' AS 'alias' ...
$game_kinds = GameKind::select('game_kind_name_en', 'game_kind_name_en as game_kind_name_en_key')
->where('game_kind_name_en','!=','')
->lists('game_kind_name_en', 'game_kind_name_en_key');
来自文档:
在您的情况下指定选择条款
$ users = DB :: table('users') - &gt; select('name as user_name') - &gt; get();
或...->lists(...)
和
检索列值列表
$ roles = DB :: table('roles') - &gt; lists('title');
此方法将返回 一系列角色标题。您还可以为其指定自定义键列 返回的数组:
$ roles = DB :: table('roles') - &gt; lists('title','name');
顺便说一句
- 不要在HTML属性名称中使用空格。
而不是:
value="dice game"
喜欢:
value="dice_game"
。