Просмотр исходного кода

added form request and data validation

Sergey Rusak 2 лет назад
Родитель
Сommit
c74a36b15e

+ 11 - 0
app/Http/Controllers/ContactController.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use App\Http\Requests\ContactRequest;
+
+class ContactController extends Controller{
+    public function submit(ContactRequest $req){
+
+    }}

+ 45 - 0
app/Http/Requests/ContactRequest.php

@@ -0,0 +1,45 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class ContactRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     *
+     * @return bool
+     */
+    public function authorize()
+    {
+        return true;
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+                'email'=>'required|email',
+                'name' =>'required',
+                'subject'=>'required|min:3|max:50',
+                'message'=>'required|min:15|max:500'
+            
+        ];
+    }
+    public function messages() {
+        return[
+
+            'name.required' => 'Необходимо указать имя!',
+            'email.required' => 'Для получения ответа на ваше сообщение, необходимо указать email.',
+            'email.email' => 'Email пишется в формате user@site.domen',
+            'subject.required' => 'Чтобы быстрее ответить на ваше сообщения необходимо указать тему письма.',
+            'message.required' => 'Без письма мы не можем вам на него ответить.'
+
+        ];
+    }
+}

+ 1 - 1
app/Providers/RouteServiceProvider.php

@@ -26,7 +26,7 @@ class RouteServiceProvider extends ServiceProvider
      *
      *
      * @var string|null
      * @var string|null
      */
      */
-    // protected $namespace = 'App\\Http\\Controllers';
+    protected $namespace = 'App\\Http\\Controllers';
 
 
     /**
     /**
      * Define your route model bindings, pattern filters, etc.
      * Define your route model bindings, pattern filters, etc.

+ 10 - 0
resources/views/contact.blade.php

@@ -9,6 +9,16 @@
 @section('content')
 @section('content')
 <h1>Страница контактов</h1>
 <h1>Страница контактов</h1>
 
 
+
+@if($errors->any())
+<div class="alert alert-danger">
+<ul>
+    @foreach($errors->all() as $error)
+        <li>{{$error}}</li>
+    @endforeach
+</ul>    
+</div>
+@endif
 <form action="{{route('contact-form')}}" method="post">
 <form action="{{route('contact-form')}}" method="post">
     @csrf
     @csrf
     <div class="form-group">
     <div class="form-group">

+ 1 - 3
routes/web.php

@@ -25,8 +25,6 @@ Route::get('/feedback', function () {
     return view('contact');
     return view('contact');
 })->name('contact');
 })->name('contact');
 
 
-Route::post('/submit', function () {
-    return Request::all();
-})->name('contact-form');
+Route::post('/submit', 'ContactController@submit')->name('contact-form');