如果验证器在Laravel 5中失败,您如何刷新请求数据?

Mar*_*ios 1 php validation laravel laravel-5 laravel-validation

我在Laravel 5中创建了一个简单的联系表单,使用Request对象和Validator对象检查我的输入是否有错误.

我视图中的表单是用HTML编写的,而不是Laravel Form对象,Laravel 5中默认不包含该对象.

我需要设置我的表单,以便在验证规则失败时,用户的输入会闪烁到会话中,以便在页面重定向时它不会消失.我能够通过在验证码之前在POST控制器中放置$ request-> flash()来实现此目的.

但是,如果验证通过并且表单已成功通过电子邮件发送,我不希望数据闪烁(即表单应该重置).由于Laravel有助于自动处理重定向,因此我无法在$ this-> validate块中实现此目的.

如果出现验证错误,我怎么能告诉Laravel只刷新表单数据?

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class ContactController extends Controller
{
/**
 * Show the form for creating a new resource.
 *
 * @return Response
 */
public function create()
{
    return view('contact');
}

/**
 * Store a newly created resource in storage.
 *
 * @param  Request  $request
 * @return Response
 */
public function store(Request $request)
{
    // Flash current input in case the validator fails and redirects
    $request->flash();

    // Validate the form request, redirect on fail
    $this->validate($request, [
        'name' => 'required',
        'email' => 'required|email',
        'subject' => 'required',
        'message' => 'required|min:5',
    ]);

    // Generate email from template and send
    \Mail::send('emails.feedback',
        array(
            'name' => $request->get('name'),
            'email' => $request->get('email'),
            'user_message' => $request->get('message'),
            'subject' => $request->get('subject')
        ), function($message) use ($request)
        {
            $message->from( \Config::get('site.from_email') );
            $message->to( \Config::get('site.contact_email') , 'Admin' );
            $message->subject( \Config::get('site.name').': '. $request->get('subject') );
        });

    // Redirect to Contact route with success message
    return \Redirect::route('contact')
    ->with('message', 'Thanks for contacting us!');
}
Run Code Online (Sandbox Code Playgroud)

}

gio*_*pds 6

如果像我这样的人不知道如何获得旧的价值并以某种方式结束这里,那么它就是:

<input value="{{ old('var_name') }}">
Run Code Online (Sandbox Code Playgroud)

当Laravel为您提供这样的帮助时,我不认为您需要访问会话数据.

希望有所帮助,祝你有个美好的一天.=)