猿问

Blade Form 未显示 Flash 消息并且未对表单字段执行验证

O. 我需要帮助解决这个问题。我在blade.php 文件中有一个联系表单,我在我的web.php 文件中设置了一个路由,我设置了一个从web.php 文件路由的控制器,用于对字段执行验证并显示提交表单时页面上的闪现消息。现在表单已正确提交到我的数据库,因此它可以正常工作,但是如果我使用空白表单提交,则验证将无法正常工作(laravel),并且在成功提交表单时不会显示闪现消息:


代码:


网页.php


<?php 

    Route::get('/', 'HomeController@index')->name('home');

    Route::post('/contact/submit','MessagesController@submit');

消息控制器.php


<?php


namespace App\Http\Controllers;


use Illuminate\Http\Request;

use App\Message;



class MessagesController extends Controller

{


    public function submit(Request $request)

    {


        $validatedData = $request->validate([

            'name' => 'required|min:2',

            'email' => 'required|max:255',

            'phonenumber' => 'required|min:10|max:10',

            'message' => 'required|min:5',

        ]);


        Message::create($validatedData);


        return redirect('/')->with('success', 'Message has been sent');

    }

}

联系人.blade.php


{{--CONTACT FORM--}}

<section id="contact">

<div class="container-fluid padding">

    <div class="row text-center padding">

        <div class="col-12">

            <h2>Contact PDMA</h2>

        </div>

        <div class="col-12 padding">

            {!! Form::open(['url' => 'contact/submit']) !!}

            @csrf


            <div class="form-group">

                {{Form::label("name", 'Name')}}

                {{Form::text('name', '', ['class' => 'form-control', 'placeholder' => 'Enter name'])}}

            </div>

            <div class="form-group">

                {{Form::label("email", 'E-Mail Address')}}

                {{Form::text('email', '', ['class' => 'form-control', 'placeholder' => 'Enter email'])}}

            </div>

            <div class="form-group">

                {{Form::label("phonenumber", 'Phone Number')}}

                {{Form::text('phonenumber', '', ['class' => 'form-control', 'placeholder' => 'Enter phone number'])}}

            </div>

    </div>

</div>

</section>


POPMUISE
浏览 105回答 2
2回答

临摹微笑

只需在控制器中使用 Session: First Import Session 类&nbsp;use Session;&nbsp;Message::create($validatedData);&nbsp;Session::flash('success', 'Message has been sent');&nbsp;return redirect('/')然后在视图文件夹中创建一个刀片文件,你可以随意调用它,例如:notify.blade.php@if (Session::has('success'))&nbsp;<div class="alert alert-success" role="alert" style="bottom:10px; position: fixed; left:2%; z-index:100">&nbsp; <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>&nbsp; <h4 class="alert-heading">Well done!</h4>&nbsp; <p>{{ Session::get('success') }}</p>&nbsp;</div>@endif@if (Session::has('danger'))&nbsp;<div class="alert alert-danger" role="alert" style="bottom:10px; position: fixed; left:2%; z-index:100">&nbsp; &nbsp;<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>&nbsp; &nbsp;<h4 class="alert-heading">Error!</h4>&nbsp; &nbsp;<p>{{ Session::get('danger') }}</p>&nbsp;</div>@endif最后,在任何视图中包含此文件。include('notify')
随时随地看视频慕课网APP
我要回答