如何在Laravel中填充HTML表单中的字段?

fla*_*ash 8 php forms contact-form laravel laravel-5.4

我正在构建一个表单,我想在其中填充来自表单的字段(我已命名posting.blade.php)

我用过的控制器是:

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');
}
Run Code Online (Sandbox Code Playgroud)


问题陈述:

当前控制器不返回任何内容,因为在行'msg'=> $request->message中没有消息验证.但是,如果我使用

'msg'=> $request->name (它返回名称)

我想知道我应该在控制器中做出哪些更改,以便它返回验证中存在的每个字段.

我试过这个,但它只返回最后一个值,即post.

       'msg'=> $request->name,
       'msg'=> $request->email,
       'msg'=> $request->number,
       'msg'=> $request->city,
       'msg'=> $request->post
Run Code Online (Sandbox Code Playgroud)

use*_*178 10

首先,您需要添加->withInput()到重定向:

return redirect()->back()->with('flash_message', 'Thank you for your message')->withInput();
Run Code Online (Sandbox Code Playgroud)

这会将所有提交的表单字段刷新到会话中.

在重定向之后,要获取名称title为例如的表单字段的值,您可以使用old()帮助程序,例如:

<input type="text" name="title" value="{{ old('title') }}">
Run Code Online (Sandbox Code Playgroud)

您还可以将第二个参数传递给帮助程序:

<input type="text" name="title" value="{{ old('title', $post->title) }}">
Run Code Online (Sandbox Code Playgroud)

你明白了.