【发布时间】:2019-06-15 18:19:14
【问题描述】:
使用最新的Laravel 5.7.8 和Laravel 5.6.3 中的工作可能不适用于我的情况。
我正在尝试创建联系表单验证(必需的 ALERT/SUCCESS 消息)
contactUS.blade.php
@extends('layout.app')
@section('content')
<div id="page">
<div id="publish">
<div class="frameterms">
<h1>Contact</h1>
<script src='https://www.google.com/recaptcha/api.js'></script>
@if(Session::has('success'))
<div class="notify yellow" style="display:block;">
{{ Session::get('success') }}
</div>
@endif
{!! Form::open(['route'=>'contactus.store']) !!}
<div class="row">
<label>Name<span class="asterix">*</span></label>
</div>
<div class="row {{ $errors->has('name') ? 'has-error' : '' }}">
{!! Form::text('name', old('name'), ['class'=>'row', 'placeholder'=>'Enter Name']) !!}
<span class="text-danger">{{ $errors->first('name') }}</span>
</div>
<div class="row {{ $errors->has('email') ? 'has-error' : '' }}">
<label>Email<span class="asterix">*</span></label>
{!! Form::text('email', old('email'), ['class'=>'row', 'placeholder'=>'Enter Email']) !!}
<span class="text-danger">{{ $errors->first('email') }}</span>
</div>
<div class="row {{ $errors->has('message') ? 'has-error' : '' }}">
<label>Subject<span class="asterix">*</span></label>
<div class="selector">
<div class="selector1">
{!! Form::select('subject', array(
'Select subject...' => 'Select subject...',
'Web' => 'Web development',
'Marketing' => 'Marketing',
'App' => 'App development',
'Advertising and Promotion' => 'Advertising and Promotion',
'Other' => 'Other') ) !!}</div>
<div>
<span class="text-danger">{{ $errors->first('message') }}</span>
</div>
<div class="row {{ $errors->has('message') ? 'has-error' : '' }}">
<label>Message<span class="asterix">*</span></label>
{!! Form::textarea('message', old('message'), ['class'=>'row', 'placeholder'=>'Enter Message']) !!}
<span class="text-danger">{{ $errors->first('message') }}</span>
</div>
<div class="row">
<small class="required"><span class="asterix">*</span> Required fields</small>
</div>
<div class="form-group {{ $errors->has('g-recaptcha-response') ? ' has-error' : '' }}">
<div class="col-md-6 pull-center">
{!! app('captcha')->display() !!}
@if ($errors->has('g-recaptcha-response'))
<span class="help-block">
<strong>{{ $errors->first('g-recaptcha-response') }}</strong>
</span>
@endif
</div>
</div>
<div class="rowbutton">
<input onclick="$('.loader').show(); $(this).hide();" type="submit" value="Send message">
<div class="loader" style="display:none;"></div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
@endsection
ContactUSController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\ContactUS;
use Illuminate\Support\Facades\Input;
use Validator;
use Redirect;
class ContactUSController extends Controller
{
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function contactUS()
{
return view('pages.contactUS');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function contactUSPost(Request $request)
{
$this->validate($request, [
'name' => 'required',
'email' => 'required|email',
'subject' => 'required',
'message' => 'required',
'g-recaptcha-response' => 'required|captcha'
]);
ContactUS::create($request->all());
return back()->with('success', 'Thanks for contacting us!');
return redirect()->back();
}
}
web.php
Route::get('contact', 'ContactUSController@contactUS');
Route::post('contact', ['as'=>'contactus.store','uses'=>'ContactUSController@contactUSPost']);
当我填写联系表时,它会在后端的 SQL 数据库中添加一个帖子。当它失败时,它会返回到联系表单视图。
问题是即使我已经编码,验证器错误和成功消息也不会显示在视图中。
有谁知道如何解决这个问题?有什么解决方法吗?任何建议将不胜感激。提前谢谢你。
这是来自 Laravel 5.6.3 项目的图片,必填字段正在工作:
这是来自 Laravel 5.7.8 项目的图片,必填字段不起作用:
【问题讨论】:
-
你能试试我的答案吗?
-
和以前一样,创建并发送了消息,但是没有出现成功云。
-
你试过我的确切代码了吗? Bcz 它在我这边工作正常
-
是的,确切的代码!此代码适用于 laravel 5.6。 x 但不是在较新的版本 5.7.8 上也许 css 有问题? : S
-
为什么不更改为?
标签: php laravel validation