laravel: действие формы не работает в laravel-5.8 - PullRequest
1 голос
/ 23 октября 2019

Когда я нажимаю кнопку «Отправить» для отправки данных, появляется сообщение:

404 | не найдено

route

   Route::resource('contactform', 'ContactformController');

лезвие

  <form class="leave-comment" action="{{ route('contactform.store') }}" method="POST">
                    <h4 class="m-text26 p-b-36 p-t-15">
                        Send us your message
                    </h4>

                    <div class="bo4 of-hidden size15 m-b-20">
                        <input class="sizefull s-text7 p-l-22 p-r-22" type="text" name="contact_name" placeholder="Full Name">
                    </div>

                    <div class="bo4 of-hidden size15 m-b-20">
                        <input class="sizefull s-text7 p-l-22 p-r-22" type="text" name="contact_email" placeholder="Email Address">
                    </div>

                    <textarea class="dis-block s-text7 size20 bo4 p-l-22 p-r-22 p-t-13 m-b-20" name="contact_message" placeholder="Message"></textarea>

                    <div class="w-size25">
                        <!-- Button -->
                        <button type="submit" class="flex-c-m size2 bg1 bo-rad-23 hov1 m-text3 trans-0-4">
                            Send
                        </button>
                    </div>
                </form>

контроллер

public function store(Request $request)
{
    $request->validate([
        'contact_name' => 'required',
        'contact_email' => 'required|email',
        'contact_message' => 'required'
    ]);

    // send email

    Mail::to('test@test.com')->send(new ContactformMail());   
}

1 Ответ

1 голос
/ 23 октября 2019

Каждый раз, когда вы определяете форму HTML в своем приложении, вы должны включить в форму скрытое поле токена CSRF, чтобы связующее ПО защиты CSRF могло проверить запрос. Вы можете использовать директиву @csrf Blade для генерации поля токена:

<form method="POST" action="/profile">
    @csrf
    ...
</form>
...