【问题标题】:Assist with using native html form in laravel协助在 laravel 中使用原生 html 表单
【发布时间】:2018-04-15 02:50:24
【问题描述】:

Hello:我已经在 wordpress 中完成了大量的 html 表单,现在我正在尝试在 laravel 中做同样的事情。问题在于提交表单;它不会像我期望的那样到达我的目的地或传递 post 变量。 (我在加载页面时遇到错误)。

  • 我知道它与“路线”有关,也可能与 CSRF 有关? (阅读了很多关于此的内容并查看了各种信息
  • 我已经看到有关使用 Laravel 构建表单“打开表单/关闭表单”的事情,但我正在尝试找到一种仅使用 html 表单的方法
  • 我安装了默认的 laravel,没有任何额外内容...
  • 我尝试添加“发布”路线,但没有帮助...

这是我现在拥有的:

这是来自我的 routes.php 文件:

 Route::post('gz_form', ['as' => 'gz_form', 'uses' => 'cont15_gzap@gzap_cont_function']);

这是我的表格的顶部:

<form method="post" autocomplete="off"  action="{{ route('gz_form') }}" >

<input name="_token" type="hidden" value="{{ csrf_token() }}"/>


 <input type="hidden" name="gc_post" value=2 />

(我按照某些人的建议输入了那个令牌输入......)

无论如何-我希望有人可以帮助我...

【问题讨论】:

  • 你遇到了什么错误?
  • 好的,我编辑了问题并添加了错误的屏幕截图-希望对您有所帮助...
  • 应该不是 CSRF 问题。你能检查它发布到正确的 URL ('gz_form') 吗?收到此错误时的 URL 是什么?
  • 这里是网址(已更改域):example.com/%7B%7B%20route('gz_form')%20%7D%7D
  • 那是你的问题。尝试将action="{{ route('gz_form') }}" 替换为action="/gz_form"。不是长期解决方案,但至少您会看到表单和路由是否正常工作。

标签: php html laravel


【解决方案1】:

您必须检查您的路线方法..是发布还是获取..并检查您的路线是否已经命名..

Route::post('/gz_form', 'YourController@handler')->name('gz_form');

当你使用{{ route('gz_form') }} 时,你需要给它命名

【讨论】:

  • 他确实给它起了名字。 ['as' =&gt; 'gz_form'] 将与 -&gt;name('gz_form') 执行相同的操作
  • 不得不离开一会儿——但无论如何;将我的包含文件重命名为以“.blade.php”结尾;我尝试了两种方式的“动作”部分;但现在出现令牌不匹配错误;我会发一张照片
【解决方案2】:

我能够使用您的两个输入来让它工作 - 但是一旦我把它归结为令牌不匹配 - 我终于通过将表单上的输入更改为:

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">    

我在某个地方发现了,通过这样做,令牌不匹配消失了......

但是感谢你们的帮助 - 让这个工作需要不止一步,所以你的帮助是必要的并且很有帮助......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2016-06-12
    相关资源
    最近更新 更多