选择字段不保存到数据库,Laravel 5

时间:2015-04-09 15:17:07

标签: laravel laravel-5

这可以是如此简单,但我几乎被烧毁了,我的大脑已经消失了。我在users表中添加了一列以及其他列:country。在我的用户模型中,我为country和其他人设置了受保护的可填写集。

我的表单是这样的:

     <div class="form-group">
        {!! Form::label('country', 'Country') !!}
        {!! Form::select('country', ['USA', 'UK'], ['class' => 'form-control']) !!}
     </div>

在我疯了之前,因为我添加到users表中的其他列工作了,所以我发疯了吗?我应该把它称为一天,显然应该有效。请帮忙。

控制器:

public function update(@company_name)
 {
      $user = User::whereCompanyName($company_name)->firstOrFail();

    $user->fill(Input::all());

    $user->save();

    flash('You have successfully edited your profile');

    return redirect('/');
 }

在我的迁移中:

$table->string('country')->unique()->nullable();

1 个答案:

答案 0 :(得分:1)

Form :: select()调用的第三个参数应该是select字段的默认值:

{{ Form::select('country', ['usa' => 'USA', Input::old('country') => 'UK'], 'uk', ['class' => 'form-control']) }}

第二个参数是一个关联数组,其中键(第一个条目)表示选项元素的值属性,第二个条目表示要显示的文本。第三个参数采用您要默认的项目的第一个条目(或关联数组中的键)。

如果您希望Input :: old('country')在返回时显示您之前的选择,则需要将控制器的return语句更改为:

return Redirect::to('/')->withInput()