gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:43:25 26 4
gpt4 key购买 nike

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

我认为表单是用 HTML 编码的,而不是 Laravel Form 对象,Laravel 5 默认情况下不包含该对象。

我需要设置表单,以便如果验证规则失败,用户的输入将闪烁到 session 中,以便在页面重定向时它不会消失。我可以通过在 POST Controller 中的验证代码之前放置 $request->flash() 来实现此目的。

但是,如果验证通过并且表单已成功通过电子邮件发送,我不希望刷新数据(即应重置表单)。我没有明显的方法可以在 $this->validate block 中完成此操作,因为 Laravel 可以自动处理重定向。

如何告诉 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!');
}
}

?>

最佳答案

如果像我这样的人不知道如何获取旧值并以某种方式最终到达这里,那就是:

<input value="{{ old('var_name') }}">

当 Laravel 为您提供这样的帮助程序时,我认为您不需要访问 session 数据。

希望对您有所帮助,祝您度过愉快的一天。 =)

关于php - 如果 Laravel 5 中验证器失败,如何刷新请求数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31530706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com