Я делаю просмотр с защитой паролем. В основном, когда вы получаете доступ к этому ресурсу, у вас есть представление, которое указывает, что вам нужно ввести пароль.
Правильное поведение этого должно быть
- Вы получаете доступ к представлению
- Пользователь вводит пароль и отправляет форму POST
- Если метод перенаправляет обратно с определенным значением, вы должны увидеть реальное содержимое страницы.
Итак, мой код клинка следующий:
@if ($passedPassword = Session::get('passedPassword'))
...here goes the real/true view content
@else
<section class="questionnaire-questions">
<div>
<form
action="{{ route('questionnaire.password', ['questionnaire' => $questionnaire->id]) }}"
method="POST">
{{ csrf_field() }}
<h3 class="text-center">@lang('questionnaire.password.advice')<h3>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="goal-input-group numeric">
<label>PASSWORD</label>
<input
style='visibility: visible;'
name="password"
type="password"
>
</div>
</div>
</div>
<div class="text-center">
<button type="submit" class="goal-btn goal-btn-lg goal-btn-artic-blue">@lang('questionnaire.password')</button>
</div>
</form>
</div>
</section>
@endif
Это представление отображается с помощью следующего метода:
public function show(Questionnaire $questionnaire) {
$data = [];
$data['questionnaire'] = $questionnaire;
\Session::flash('passedPassword', false);
return view('questionnaires.show', array('data' => $data));
}
В предыдущем методе я передаю passedPassword
, но я не могу найти способ передать его как переменную flash. Если есть способ добавить данные типа
return back()->with(array(
'passedPassword' => false
));
Но, используя метод представления, я действительно буду признателен за умение.
Затем, когда пользователь нажимает кнопку, я вызываю следующую функцию:
public function password(Request $request, Questionnaire $questionnaire) {
if (strcmp($questionnaire->password, $request->input('password')) == 0) {
return back()->with(array(
'passedPassword' => false
));
}
}
Но даже когда пароль правильный, я получил представление о пароле, переменная flash / session никогда не поступала в представление.
Я что-то упускаю или делаю неправильно?
Заранее спасибо.