Laravel - Form ::选择show name作为Option Value

时间:2015-09-19 10:17:38

标签: php laravel-5

我有一个联赛数据库,我需要在不同联赛的形式中有一个下拉列表......

我有这个工作,但选项值显示为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>

1 个答案:

答案 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填充它。

在评论中回答,但放在这里,以便它可以被接受,它将从未答复的列表中消失