使用 Flash 消息和自定义验证参数进行 Laravel 验证

yud*_*ohn 4 validation laravel

我有 Laravel 5 验证,如下所示:

$this->validate( $request, [
    'zipcode' => 'required',
    'province' => 'required',
    'address' => 'required',
    'number' => 'required',
    'phone' => 'required'
] );
Run Code Online (Sandbox Code Playgroud)

如果验证失败,如何设置错误提示?我正在使用laracast/flash库,它支持设置如下所示的 Flash 消息:

flash()->error('Validation Fails');
Run Code Online (Sandbox Code Playgroud)

我知道我可以像这样使用Validator包:

use Validator;

$validation = Validator::make( $request->all(), [] );
Run Code Online (Sandbox Code Playgroud)

但我想在不使用use Validator;和使用 Laravel 基本验证的情况下最小化我的代码$this->validate()

另外,如果需要额外的会话或参数,如何返回它们?我尝试过这样但它不起作用:

$this->validate( $request, [] )->with( 'foo', 'bar' );
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

小智 6

在你的控制器中:

    $rules = array(
            'zipcode' => 'required',
            'province' => 'required',
            'address' => 'required',
            'number' => 'required',
            'phone' => 'required'
    );

    $validator = Validator::make($request->all(), $rules);

    if ($validator->fails())
    {
        return Redirect::to('/url_form')->withInput()->withErrors($validator);
    }
Run Code Online (Sandbox Code Playgroud)

在您的刀片模板中:

  @if($errors->has())
  @foreach ($errors->all() as $error)
  <p class="yellow-text font lato-normal center">{{ $error }}</p>
  @endforeach
  @endif
Run Code Online (Sandbox Code Playgroud)

祝你好运!