2017-08-18 25 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; 
} 
関連する問題