Laravel填充选项值

时间:2014-05-10 15:35:38

标签: php laravel blade

我目前正在开发一个带搜索功能的项目。我从我的数据库中获取了一些数据。我通过我的控制器绑定这些数据。并用它填充我的下拉列表,包括默认选择项。是否可以将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>

提前致谢!

1 个答案:

答案 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"