表单模型绑定 - 不填充表单字段值

时间:2015-03-11 15:29:15

标签: php forms laravel laravel-4

我是Laravel的新手,但是随便去了。我遇到了Form Model绑定的问题,我已经将表单模型设置为绑定并在我的数据库中设置数据,但该字段没有填充以匹配。

我怀疑,我错过了一些明显的东西,虽然不确定。

我目前的代码是:

路线

Route::get('admin/user/bank-details', array('as' => 'bank.edit', function()
{
    $user_id = Auth::id();

    $bank_details = Banks::whereRaw("(user_id = '".$user_id."')")->get();

    // Return Our View...
    return View::make('user.update_bank')
               ->with('bank_details', $bank_details);
}));

查看

{ Form::model($bank_details, array('route' => 'bank.edit')) }}
 <div class="form-group">
  <label for="bank_sortcode">Bank Sortcode</label>
  {{ Form::text('bank_sortcode', null, array('class' => 'form-control sortcode', 'placeholder' => 'Bank Sort Code')) }}
 </div><!-- /.form-group -->
{{ Form::close() }}

模型

class Banks extends \Eloquent {

    // Don't forget to fill this array
    protected $fillable = array('bank_sortcode');

    use SoftDeletingTrait;

    protected $dates = ['deleted_at'];

    protected $primaryKey = "bank_id";
}

我的数据库表包含一个标题为bank_sortcode的字段,其值当前设置为“20-20-20”

由于

1 个答案:

答案 0 :(得分:2)

您只能使用单个模型填充表单。所以改变

$bank_details = Banks::whereRaw("(user_id = '".$user_id."')")->get();

到这个

$bank_details = Banks::where('user_id', $user_id)->first();

使用此功能,您只能获得一条记录(不是记录数组) - 因此它应该可以正常工作。

P.S。你应该只在非常非常原始的情况下使用raw雄辩的查询。否则,您将不必要地创建安全风险。