Intereting Posts

Laravel Назад на страницу со старым вводом для проверки

Страница обновления профиля

Я использую маршрут как

Route::get('editdriver/{data}', 'DriverController@EditDriver'); 

И в контроллере после проверки я использую,

 return Redirect::to('editdriver/'.$data)->withInput()->withErrors($validation->messages()); 

Таким образом, URL будет

HTTP: // локальный / проект / editdriver / 1

Если я опущу значение, которое требуется в rule и нажмите отправить форму,

Он показывает старые данные с подтверждением.

То, что мне нужно, не должно показывать старое значение, которое находится из db.

Я даже пытался.

 return Redirect::back()->withErrors($validation->messages()); 

Как я могу это сделать ??

Обновить :

В контроллере у меня есть

 public function EditDriver($data=NULL) { $editvehicle=$data; $DriverDetails = DriverModel::where('DriverId', $editvehicle)->get()->toArray(); return View::make('home/editdriver')->with('DriverDetails', $DriverDetails); } 

В представлении у меня есть

 $("#Firstname").val("<?php echo $DriverDetails[0]['Firstname']?>"); 

И отображение из jquery в html as

 {{ Form::text('Firstname',null, array('id'=> 'Firstname')) }} 

Я понятия не имею, почему вы используете jQuery для заполнения своей формы – это не имеет смысла, и вы должны удалить этот код.

Все, что вам нужно, это одна строка кода:

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

Использование Input::old($DriverDetails[0]['Firstname']) будет заполнять основную форму значением вашей базы данных, но затем заполнит форму любыми введенными значениями, если есть ошибка проверки

И для подтверждения – ваше исходное заявление возврата выглядит правильно:

 return Redirect::to('editdriver/'.$data)->withInput()->withErrors($validation->messages()); 

Я думаю, вы хотите использовать метод формы :: model Laravel. Это позволяет вам легко заполнить форму данными из вашей базы данных и предоставить вам также возможность ввода данных старой формы.

 {{ Form::model($User, array('url' => 'management/edit/' . $User->id, 'role' => 'form')) }} <div class="form-group"> <label>Username</label> {{ Form::text('username', Input::old('username'), array('class' => 'form-control', 'placeholder' => 'Username', 'name' => 'username')) }} </div> <div class="form-group"> <label>Password</label> {{ Form::password('password', array('class' => 'form-control', 'placeholder' => 'Password', 'name' => 'password')) }} </div> {{ Form::submit('Edit', array('class' => 'btn btn-default')) }} {{ Form::close() }} 

В своей публичной функции вы можете сделать это:

 public function showEdit($ID) { //Return View With User Information return View::make('management.edit') ->with('User', Management::find($ID)); } 

Это вернет информацию пользователя, которую вы хотите изменить. И модель Form :: будет автоматически совпадать с именами вашего текста формы ::. Я думаю, что ваши поля базы данных должны соответствовать именам формы :: text.

И затем, когда вы публикуете свое редактирование на сервере, вы можете сделать это:

 public function postEdit($ID) { // Get Input $PostData = array( 'username' => Input::get('username'), 'password' => Input::get('password') ); // Declare Validation Rules. $ValRules = array( 'username' => 'required|unique:management,username,' . $ID, 'password' => 'required' ); // Declare Validation Messages $ValMessages = array( 'username.required' => 'The field Username is required.</br>', 'username.unique' => 'The field Username must be unique.</br>', 'password.required' => 'The field Password is required.</br>' ); // Validate Input $ValResult = Validator::make($PostData, $ValRules, $ValMessages); // Check Validate if ($ValResult->passes()) { // Update User $UserUpdate = Management::find($ID); $UserUpdate->username = Input::get('username'); $UserUpdate->password = Input::get('password'); $UserUpdate->save(); // Succes, Redirect To User return Redirect::to('management') ->with('Success', 'The management users is modified.'); } else { // Grab Messages From Validator $ValErrors = $ValResult->messages(); // Error, Redirect To User Edit return Redirect::to('management/edit/' . $ID) ->withErrors($ValErrors) ->withInput(Input::except('password')); } } 

См. Раздел -> withInput, чтобы вернуть информацию, введенную пользователем. Затем модель Form :: просмотрит данные Flash сессии и поместит старый вход в нужные места. Обратите внимание, что данные флэш-памяти сеанса будут воспринимать значение модели ($ User).

Laravel Form Model Binding: http://laravel.com/docs/4.2/html#form-model-binding

Надеюсь это поможет!