Laravel返回页面,使用旧输入进行验证

Biz*_*v B 3 php validation laravel laravel-4 laravel-validation

对于更新配置文件页面

我用这条路线作为

Route::get('editdriver/{data}', 'DriverController@EditDriver');
Run Code Online (Sandbox Code Playgroud)

在我使用验证后的控制器中,

return Redirect::to('editdriver/'.$data)->withInput()->withErrors($validation->messages());
Run Code Online (Sandbox Code Playgroud)

所以,网址将是

HTTP://本地主机/项目/ editdriver/1

如果我清空了所需的值rule并按提交表单,

它显示带有验证消息的旧数据.

我需要的是,它不应该显示来自db的旧值.

我甚至试过了.,

return Redirect::back()->withErrors($validation->messages());
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ??

更新:

在控制器中我有

public function EditDriver($data=NULL)
    {
        $editvehicle=$data;
        $DriverDetails = DriverModel::where('DriverId', $editvehicle)->get()->toArray();

        return View::make('home/editdriver')->with('DriverDetails', $DriverDetails);
    }
Run Code Online (Sandbox Code Playgroud)

在我看来

$("#Firstname").val("<?php echo $DriverDetails[0]['Firstname']?>");
Run Code Online (Sandbox Code Playgroud)

并从jquery显示为html

{{ Form::text('Firstname',null, array('id'=> 'Firstname')) }}
Run Code Online (Sandbox Code Playgroud)

Lau*_*nce 9

我不知道为什么你使用jQuery来填写你的表单 - 这没有任何意义,你应该删除该代码.

您只需要这一行代码:

{{ Form::text('Firstname', Input::old('Firstname', $DriverDetails[0]['Firstname']), array('id'=> 'Firstname')) }}
Run Code Online (Sandbox Code Playgroud)

使用Input::old($DriverDetails[0]['Firstname'])将使用您的数据库值预填充初始表单 - 但如果存在验证错误,则会使用任何"输入"值填写表单

并确认 - 您的原始退货声明看起来是正确的:

return Redirect::to('editdriver/'.$data)->withInput()->withErrors($validation->messages());
Run Code Online (Sandbox Code Playgroud)