2016-03-13 2 views
0

Я новичок в Laravel и других фреймворках PHP.laravel validator не показывать ошибки

Попробуйте простую форму и проверки, как примеры в https://laravel.com/docs/5.1/validation

routes.php

Route::get('/post/', '[email protected]'); 
Route::post('/post/store', '[email protected]'); 

create.blade.php

<html> 
<head> 
    <title>Post form</title> 

</head> 
<body> 
<h1>Create Post</h1> 
    <form action="/post/store" method="POST"> 
     <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
     <div class="form-group"> 
      <label for="title">Title</label> 

      <input type="text" id="title" name='title'> 
      </div> 
      <button type="submit" class="btn btn-default">Save</button> 
    </form> 
</body> 

PostController.php

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 
use View; 
use Validator; 

class PostController extends Controller 
{ 
    /** 
    * Show the form to create a new blog post. 
    * 
    * @return Response 
    */ 
    public function create() 
    { 
     return view('post.create'); 
    } 

    /** 
    * Store a new blog post. 
    * 
    * @param Request $request 
    * @return Response 
    */ 
    public function store(Request $request) 
    { 
     // Validate and store the blog post... 

     $validator = Validator::make($request->all(), [ 
      'title' => 'required|min:5' 
     ]); 

     if ($validator->fails()) { 

      dd($validator->errors); 
      //return redirect('post') 
         //->withErrors($validator) 
         //->withInput(); 
     } 
    } 
} 

Когда я отправляю не достоверные данные:

ErrorException в PostController.php строке 37: Не определено свойство: Осветите \ Validation \ Validator :: $ ошибки

объект Validator и не имеют ошибок.

Если включен контроллер

return redirect('post')->withErrors($validator) 
        ->withInput(); 

и включена в форме

@if (count($errors) > 0) 
    <div class="alert alert-danger"> 
     <ul> 
      @foreach ($errors->all() as $error) 
       <li>{{ $error }}</li> 
      @endforeach 
     </ul> 
    </div> 
@endif 

Есть ошибки

ErrorException в c5df03aa6445eda15ddf9d4b3d08e7882dfe13e1.php строке 1: Undefined переменной: ошибки (вид:/www/alexey-laravel-1/resources/views/post/create.blade.php)

Эта ошибка по умолчанию получает запрос на формирование и после перенаправления с валидатора.

ответ

0

Для $errors быть доступны в представлении, соответствующие маршруты должны быть в пределах web промежуточного слоя:

Route::group(['middleware' => ['web']], function() { 
    Route::get('/post/', '[email protected]'); 
    Route::post('/post/store', '[email protected]'); 
}); 
+0

Спасибо. Оно работает – htclog81

Смежные вопросы