Контактная форма ничего не делает в Laravel 5.7, даже не показывая ошибки - PullRequest
0 голосов
/ 11 февраля 2019

Это была моя контактная форма, а вот форма действия

<form action="{{ route('contact.send')}}" method="post" class="contactForm">
              <div id="sendmessage">Your message has been sent. Thank you!</div>
              <div id="errormessage"></div>

              <div class="row">
                <div class="span4 form-group">
                  <input type="text" name="name"  id="name" placeholder="Your Name"data-rule="required"  data-msg="Please enter at least 4 chars" />
                  <div class="validation"></div>
                </div>
                <div class="span4 form-group">
                  <input type="email"  name="email" id="email" placeholder="Your Email" data-rule="required" data-msg="Please enter a valid email" />
                  <div class="validation"></div>
                </div>
                <div class="span4 form-group">
                  <input type="text" name="phone"  id="phone" placeholder="Your Phone"data-rule="required"  data-msg="Please enter at least 4 chars" />
                  <div class="validation"></div>
                </div>
                <div class="span6 form-group">
                  <input type="text"  name="subject" id="subject" placeholder="Subject" data-rule="required" data-msg="Please enter at least 8 chars of subject" />
                  <div class="validation"></div>
                </div>
                <div class="span6 form-group">
                  <input type="text"  name="dateandtime" id="dateandtime" placeholder="Date and Time" data-rule="required" data-msg="Please Select a EST time and Date." />
                  <div class="validation"></div>
                </div>
                <div class="span12 margintop10 form-group">
                  <textarea  name="message" rows="12" data-rule="required" data-msg="Please write something for us" placeholder="Message"></textarea>
                  <div class="validation"></div>
                  <p class="text-center">
                    <button class="btn btn-large btn-theme margintop10" type="submit">Submit message</button>
                  </p>
                </div>
              </div>
            </form>

Ниже - маршрут и контроллер

Route::post('/contact','ContactController@sendMessage')->name('contact.send');

и контроллербыло

 public function sendMessage(Request $request)
    {

        $this->validate($request,[
            'name'=>'required',
            'phone'=>'required',
            'email'=>'required|email',
            'subject'=>'required',
            'messase'=>'required'
        ]);
        $contact =new \App\contact();
        $contact->name = $request->name;
        $contact->email = $request->email;
        $contact->phone = $request->phone;
        $contact->subject = $request->subject;
        $contact->date_and_time = $request->dateandtime;
        $contact->message = $request->message;
        $contact->status = false;
        $contact->save();
        Toastr::success('You Message Sent Successfully We will contact you soon!','Success',["positionClass" => "toast-top-center"]);

        return redirect()->back();
    }

А затем миграция была такой, как показано ниже

public function up()
        {
            Schema::create('contacts', function (Blueprint $table) {
                $table->increments('id');
                 $table->string('name');
                $table->string('phone');
                $table->string('email');
                $table->string('date_and_time');
                $table->text('message');
                $table->boolean('status');
                $table->timestamps();
            });
        }

Но когда я нажимал на кнопку «Отправить» после заполнения формы, в которой не было ошибок или не былочто-нибудь.Пожалуйста, помогите мне решить эту проблему.

Contact form

1 Ответ

0 голосов
/ 11 февраля 2019

Если вы используете laravel 5, вот что вам нужно сделать, чтобы показать success сообщение:

В вашем контроллере файл:

return redirect()->back()->with('success', 'your message,here');

В вашем блейд-файле:

@if (\Session::has('success'))
    <div class="alert alert-success">
        <ul>
            <li>{!! \Session::get('success') !!}</li>
        </ul>
    </div>
@endif

Если вы хотите показать сообщение об ошибке, чем в вашем контроллере:

return Redirect::back()->withErrors(['msg', 'The Message']);

В вашем блейде файле:

    @if($errors->any())
      <h4>{{$errors->first()}}</h4>
    @endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...