【问题标题】:laravel: form action isn't working in laravel-5.8laravel:表单动作在 laravel-5.8 中不起作用
【发布时间】:2020-02-19 14:50:23
【问题描述】:

当我点击提交按钮提交数据时,它会说:

404|未找到

路线

   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());   
}

【问题讨论】:

  • 您在表单中缺少@csrf 字段。 laravel.com/docs/5.8/csrf
  • 运行php artisan route:list 并确保您已将路线命名为您使用的路线。因为404表示找不到资源。
  • @nakov thnx......

标签: laravel eloquent laravel-5.8


【解决方案1】:

每当您在应用程序中定义 HTML 表单时,您应该在表单中包含一个隐藏的 CSRF 令牌字段,以便 CSRF 保护中间件可以验证请求。您可以使用@csrf Blade 指令来生成令牌字段:

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

【讨论】:

  • 不是任何时候.. 对于GET 方法类型,不需要它:P
  • 他收到 404 错误。如果是 @csrf 导致的,那么他可能会收到 419 错误。
  • 我认为他选择了答案,所以这将是 404 错误。 :P
猜你喜欢
  • 2020-12-13
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
相关资源
最近更新 更多