Laravel更新表单 - 获取正确的选择状态

时间:2015-01-12 00:07:03

标签: php laravel laravel-4

在我的更新个人资料表单中,我有一个标题选择列表。不可否认,这些项目应该来自数据库,但是目前我希望这个特定的选择列表能够做到以下几点。

  1. 在初始页面加载时显示所选项目。因此,如果$ user ['标题']是' Mrs',则显示。

  2. 如果laravel验证在其他表单字段中出现错误,并且用户已将标题更改为“先生”,则所选状态应该在“' Mr'

  3. 到目前为止我有以下内容,但它无法正常工作。

    <select name="title" id="title">
    <option value="Mr" @if(($user['title']) == 'Mr') selected @else @if((Input::old('title')) == 'Mr') selected @endif @endif>Mr</option>
    <option value="Mrs" @if(($user['title']) == 'Mrs') selected @else @if((Input::old('title')) == 'Mrs') selected @endif @endif>Mrs</option>
    ....
    </select>
    

1 个答案:

答案 0 :(得分:0)

您应该从Controller传递选择的数据,并使用Form组件在View中构建选择,例如:

Controller方法中:

$users = User::lists('title', 'id');
return View::make('user')->with('users', $user);

View

// By default, item with id 1 (the first item) will be selected
echo Form::select('title', $users, Input::old('title', 1), ['id'=>title]);

如果您正在使用Blade,那么:

// By default, item with id 1 (the first item) will be selected
{{ Form::select('title', $users, Input::old('title', 1), ['id'=>title]) }}

正确阅读documentation。您正在使用Laravel旧学校PHP编码。