Laravel 4 - 显示具有OLD数据输入和DB信息的编辑表单

Big*_*ies 3 laravel laravel-4

我正在为我的应用程序编辑表单,我想知道是否有人可以告诉我如何将数据库中的数据导入我的文本字段.

我可以根据用户点击找到我需要编辑的记录,如果我执行以下操作,我可以显示信息:

value="{{ $letter->subject }}"
Run Code Online (Sandbox Code Playgroud)

但是,我遇到的问题是,当我通过验证运行并且出现错误时,它会返回数据库信息而不是OLD数据.

所以我的问题是.有没有办法首先提供数据库信息,然后当它通过验证器时,验证用户编辑的信息?

目前要验证文本字段并将数据带回错误,即时使用

Input::old('subject')
Run Code Online (Sandbox Code Playgroud)

那个旧位是否有参数允许我输入DB数据?

干杯,

Igo*_* R. 10

嘿,你可以验证并返回 - > withInput()然后在你的实际形式,检查是否有Input :: old()并显示它,否则从数据库中显示.

例:

<input type="text" name="subject" 
value="{{ (Input::old('subject')) ? Input::old('subject') : $letter->subject }}">
Run Code Online (Sandbox Code Playgroud)

或者您可以采用另一种方式定义变量并执行常规if语句,而不是三元语句!由你来决定你想要使用什么!


Jar*_*zyk 7

您只需要表单模型绑定http://laravel.com/docs/html#form-model-binding:

{{ Form::model($letter, ['route' => ['letters.update', $letter->id], 'method' => 'put']) }}
   // your fields like:
   {{ Form::text('someName', null, ['class' => 'someHTMLclass' ...]) }}
   // no default values like Input::old or $letter->something!
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)

这种形式将由$ letter数据填充(例如从控制器传递).

现在,如果你有你的议员:

// in case of invalid data
return Redirect::back()->withInput();
Run Code Online (Sandbox Code Playgroud)

然后在重定向上,您的表单将首先使用输入值重新填充,而不是原始模型数据.