2017-08-18 43 views
0

我想從一個簡單的聯繫表來發表,我也創建了一個簡單的驗證規則吧:Laravel 5 - 請求確認不返回的消息

<?php 

namespace App\Http\Requests\Contact; 

use Illuminate\Foundation\Http\FormRequest; 

class ContactCreateRequest extends FormRequest 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return false; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'email' => 'required|email', 
      'message' => 'max:500', 
     ]; 
    } 
} 

的是,我可以發佈形式:

@extends('public.layouts.master') 
@section('content') 
<div class="container contact-form"> 
    <div class="row"> 
     <div class="col-md-6 col-md-offset-3"> 
     @if (session('status')) 
      <div class="alert alert-warning alert-dismissible" role="alert"> 
       <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       {{ session('status') }} 
      </div> 
     @endif 
     <div class="well well-sm"> 
      <form autocomplete="off" class="form" method="POST" action="{{ url('/contact') }}"> 
      {{ csrf_field() }} 
      <fieldset> 
      <legend class="text-center">Contact us</legend> 

      <!-- Name input--> 
      <div class="form-group"> 
       <label class="col-md-3 control-label" for="name">Name</label> 
       <div class="col-md-9"> 
       <input id="name" name="name" type="text" placeholder="Your name" class="form-control"> 
       </div> 
      </div> 

      <!-- Email input--> 
      <div class="form-group"> 
       <label class="col-md-3 control-label" for="email">Your E-mail</label> 
       <div class="col-md-9"> 
       <input id="email" name="email" type="email" placeholder="Your email" class="form-control" required> 
       @if ($errors->has('email')) 
        <span class="help-block"> 
         <strong>{{ $errors->first('email') }}</strong> 
        </span> 
       @endif 
       </div> 
      </div> 

      <!-- Message body --> 
      <div class="form-group"> 
       <label class="col-md-3 control-label" for="message">Your message</label> 
       <div class="col-md-9"> 
       <textarea class="form-control" id="message" name="message" placeholder="Please enter your message here..." rows="5"></textarea> 
       @if ($errors->has('message')) 
        <span class="help-block"> 
         <strong>{{ $errors->first('message') }}</strong> 
        </span> 
       @endif 
       </div> 
      </div> 

      <!-- Form actions --> 
      <div class="form-group"> 
       <div class="col-md-12 text-right"> 
       <button type="submit" class="btn btn-primary">Submit</button> 
       </div> 
      </div> 
      </fieldset> 
      </form> 
     </div> 
     </div> 
    </div> 
</div> 
@endsection 

這是我張貼到控制器:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Http\Requests\Contact\ContactCreateRequest; 
use App\Events\MessageSent; 

class ContactController extends Controller 
{ 
    /** 
    * Show the first page. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function show() 
    { 
     return view('contact.contact-form'); 
    } 

    public function create(ContactCreateRequest $request) 
    { 
     event(new MessageSent($request->message, $request->email)); 

     return redirect()->back()->with('status', 'The message was succesfully sent to us, we will get back to you inside of 24 hours'); 
    } 
} 

但是,當我嘗試後什麼是我剛剛得到一個錯誤:

​​

這是爲什麼,爲什麼我沒有看到在接觸形式的任何錯誤信息,如果驗證不通過?

回答

1

如果你沒有登錄,你應該嘗試在你的請求文件來改變這種

public function authorize() 
{ 
    return true; 
}