我正在构建一个表单,我想在其中填充来自表单的字段(我将其命名为posting.blade.php
)
我为此使用的 Controller 是:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required',
'email' => 'required|email',
'number' => 'required',
'city' => 'required',
'post' => 'required'
]);
Mail::send('emails.posting-message', [
'msg'=> $request->message
], function($mail) use($request) {
$mail->from($request->email, $request->name);
$mail->to('helloworld@gmail.com')->subject('Contact Message');
});
return redirect()->back()->with('flash_message', 'Thank you for your message');
}
问题陈述:
当前 Controller 不返回任何内容,因为在 'msg'=> $request->message
行中,验证中没有消息。但是如果我使用
'msg'=> $request->name
(返回名称)
我想知道我应该在 Controller 中进行哪些更改,以便它返回验证中存在的每个字段。
我试过这个,但它只返回最后一个发布的值。
'msg'=> $request->name,
'msg'=> $request->email,
'msg'=> $request->number,
'msg'=> $request->city,
'msg'=> $request->post
最佳答案
首先,您需要将 ->withInput()
添加到您的重定向:
return redirect()->back()->with('flash_message', 'Thank you for your message')->withInput();
这会将所有提交的表单字段闪烁到 session 中。
重定向后,要获取名称为 title
的表单字段的值,例如,您可以使用 old()
帮助程序,例如:
<input type="text" name="title" value="{{ old('title') }}">
您还可以将第二个参数传递给助手:
<input type="text" name="title" value="{{ old('title', $post->title) }}">
你明白了。
关于php - 如何在 Laravel 中从 HTML 表单填充字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51974693/