gpt4 book ai didi

php - 在 Laravel 的同一页面上有 2 个表单?

转载 作者:行者123 更新时间:2023-12-05 06:38:15 25 4
gpt4 key购买 nike

我正在尝试用我的 PHP 代码解决“一页上有两种形式”的问题,但结果比我预期的要麻烦得多,而且它的行为方式并不像我想象的那样正确.

对于第一种形式(登录),我使用此 if 语句来确定消息是否用于登录。

@if(Session::has('message') && Session::get('last_message_for') == 'login')
<div class="notification is-{{ Session::get('color') }}">
<i class="fa fa-times"></i> &nbsp;&nbsp;{{ Session::get('message') }}
</div>
@elseif($errors->first() && Session::get('last_message_for') == 'login')
<div class="notification is-warning">
<i class="fa fa-times"></i> &nbsp;&nbsp;{{ $errors->first() }}
</div>
@endif

我的第二个表单有相同的代码,但它只是检查 last_message_for 是否有不同的“登录”值。

@if(Session::has('message') && Session::get('last_message_for') == 'modal')
<div class="modal is-active" id="modal-forgotPassword">
@else
<div class="modal" id="modal-forgotPassword">
@endif
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<p class="modal-card-title" id="open-modal">Forgot Password?</p> <button class="delete"></button>
</header>
<form action="{{ route('frontend.guest.password.forgot') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<section class="modal-card-body">
<div class="content">
@if(Session::has('message') && Session::get('last_message_for') == 'modal')
<div class="notification is-{{ Session::get('color') }}">
<i class="fa fa-times"></i> &nbsp;&nbsp;{{ Session::get('message') }}
</div>
@endif
<div class="field">
<p class="control has-icons-left">
<input class="input" name="email" placeholder="Enter an email..." type="email">
<span class="icon is-small is-left"><i class="fa fa-envelope"></i></span>
</p>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</div>
</section>
<footer class="modal-card-foot">
<button class="button is-success" type="submit"><i class="fa fa-sign-in"></i> &nbsp;&nbsp;Send email</button>
</footer>
</form>
</div>
</div>

现在问题来了,登录部分工作得很好,并在有任何错误消息时显示错误消息,但第二个部分在我有错误消息时不显示任何错误。

我用它来设置 last_message_for

Session::put('last_message_for', 'login');

这是我的第二种形式的代码:

public function onForgotPassword(Request $request) {
$validator = Validator::make($request->all(), [
'email' => 'required|email|exists:users,mail',
]);

Session::put('last_message_for', 'modal');

if ( $validator->fails()) {
return redirect()->route('frontend.guest.login')->withErrors($validator->messages());;
}
else {
Mail::to($request->input('email'))->send(new ForgotPasswordEmail());
return redirect()->route('frontend.guest.login')->withMessage('Email Sent')->withColor('warning');
}
}

最佳答案

您不处理验证错误,只处理返回的消息,应该这样做。

@if(Session::has('message') && Session::get('last_message_for') == 'modal')
<div class="notification is-{{ Session::get('color') }}">
<i class="fa fa-times"></i> &nbsp;&nbsp;{{ Session::get('message') }}
</div>
@elseif($errors->first() && Session::get('last_message_for') == 'login')
<div class="notification is-warning">
<i class="fa fa-times"></i> &nbsp;&nbsp;{{ $errors->first() }}
</div>
@endif

关于php - 在 Laravel 的同一页面上有 2 个表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46473235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com