2017-02-01 2 views
0

У меня есть две (2) страницы. Одна из них - страница Создать, а другая - страница подтверждения. Создать страницу имеет форму и кнопка «Приступить к подтверждению», которая будет перенаправляться на страницу подтверждения. Страница подтверждения должна отображать все входы на странице «Создать», после чего пользователь сможет отправить ее сразу после того, как он/она проверит все введенные значения.Отображать входные значения формы отображения с одной страницы на другую

Контроллер:

public function create() 
{ 
    return ('pages.create');  
} 

public function confirmCreate() 
{ 
    $value = Input::all(); 
    Session::flash('value', $value); 
    return view('pages.confirm-create')->with('value', $value); 
} 

Маршруты:

Route::get('create', '[email protected]')->name('create'); 

Route::post('confirm-create', '[email protected]')->name('confirm-create'); 

Route::put('store', '[email protected]')->name('store'); 

Создать страницу Вид:

{{ Form::open(array('url' => 'confirm-create', 
           'method' => 'POST', 
           'class' => 'form-horizontal')) }} 

    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> 
     <label class="col-md-4 control-label required">Name</label> 
     <div class="col-md-6"> 
     <input id="name" placeholder="Name" type="text" class="form-control" name="name" value="{{ old('name) }}" required autofocus> 
     @if ($errors->has('name')) 
     <span class="help-block"> 
      <strong>{{ $errors->first('name') }}</strong> 
     </span> 
     @endif 
     </div> 
    </div> 

    <div class="form-group{{ $errors->has('contactNumber') ? ' has-error' : '' }}"> 
     <label class="col-md-4 control-label required">Contact Number</label> 
     <div class="col-md-6"> 
     <input id="contactNumber" placeholder="Contact Number" type="text" class="form-control" name="contactNumber" value="{{ old('contactNumber) }}" required autofocus> 
     @if ($errors->has('contactNumber')) 
     <span class="help-block"> 
      <strong>{{ $errors->first('contactNumber') }}</strong> 
     </span> 
     @endif 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-md-6 col-md-offset-6"> 
     <button type="submit" class="btn btn-primary"> 
      Proceed to Confirm 
     </button> 
     </div> 
    </div> 

{{ Form::close() }} 

Подтверждать Вид:

{{ Form::open(array('url' => 'pages', 
           'method' => 'POST', 
           'class' => 'form-horizontal')) }} 

    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> 
     <label class="col-md-4 control-label required">Name</label> 
     <div class="col-md-6"> 
     <label class="control-label">{{ old('name') }}</label> 
     @if ($errors->has('name')) 
     <span class="help-block"> 
      <strong>{{ $errors->first('name') }}</strong> 
     </span> 
     @endif 
     </div> 
    </div> 

    <div class="form-group{{ $errors->has('contactNumber') ? ' has-error' : '' }}"> 
     <label class="col-md-4 control-label required">Contact Number</label> 
     <div class="col-md-6"> 
     <label class="control-label">{{ old('contactNumber') }}</label> 
     @if ($errors->has('contactNumber')) 
     <span class="help-block"> 
      <strong>{{ $errors->first('contactNumber') }}</strong> 
     </span> 
     @endif 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-md-6 col-md-offset-6"> 
     <button type="submit" class="btn btn-primary"> 
      Submit 
     </button> 
     </div> 
    </div> 

{{ Form::close() }} 

Я не могу показать данные с моей страницы «Создать» (после нажатия кнопки «Приступить к подтверждению») на странице подтверждения. Как должен выглядеть мой контроллер, маршруты и представление (как страницы создания, так и подтверждения)? Отправить справку. Благодаря!

ответ

0

Вы передаете value на номер pages.confirm-create, но не используйте его.

Замещение {{ old('contactNumber') }} с {{ $value['contactNumber'] }} или {{ $value['contactNumber'] }}.

Использование old() хорошо, когда у вас есть подтверждение, оно получает значение из предыдущего запроса, а не из значения, переданного в представление.

+0

Спасибо. Я сделал то, что вы сказали, но моя страница подтверждения по-прежнему пуста. Является ли мой URL-адрес действия для создания страницы ('url => 'confirm-create'') правильным? –

+0

Кроме того, я думаю, что моему контроллеру все еще не хватает чего-то или все еще некорректно. –

+0

Добавить ' 'наверху' confirm-create.blade.php', чтобы проверить, что это массив. –

0

Вы делаете небольшую ошибку на изображении Confirm Page.

Старый вход не может быть использован так. Посмотрите в документации:

https://laravel.com/docs/5.3/requests#old-input

который гласит:

Laravel позволяет хранить информацию от одного запроса в течение следующего запроса. Эта функция особенно полезна для повторного заполнения форм после обнаружения ошибок проверки.

Используется только для той же формы, из которой произошла проверка.

Также вы используете:

<label class="control-label">{{ old('name') }}</label> 

Вместо поля ввода.

<input id="name" placeholder="Name" type="text" class="form-control" name="name" value="{{ $value['name'] }}" required autofocus> 

Вы должны использовать $value['name'] вместо old('name').

+0

Спасибо за ответ.Но я использовал '' на моей странице «Создать», а не на странице «Подтверждение». Однако я использовал '

+0

Okey. Итак, вы пытались проверить, подходит ли значение в вашем представлении или нет? вы можете проверить на '{{dd ($ value)}}', чтобы узнать, было ли передано какое-либо значение или нет – PaladiN

Смежные вопросы