在 laravel 的 html 中添加表单操作

新手上路,请多包涵

我无法在视图 html 表单操作标记中传递 url。

 <form method="post" action="??what to write here??" accept-charset="UTF-8">

我想将它的操作设置为 WelcomeController@log_in 控制器中 WelcomeController 文件中的功能。

这是我的路线:

 Route::get('/','WelcomeController@home');
Route::post('/', array('as' => 'log_in', 'uses' => 'WelcomeController@log_in'));
Route::get('home', 'HomeController@index');

提交后它保持相同的网址

http://localhost:8000/

和主要错误行

Whoops, looks like something went wrong.

之后是 1/1 TokenMismatchException in compiled.php line 2440:

原文由 Shahid Rafiq 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 216
1 个回答

您可以使用 action() 助手来生成您的路线的 URL:

 <form method="post" action="{{ action('WelcomeController@log_in') }}" accept-charset="UTF-8">

请注意,Laravel 5 默认安装已经为整个身份验证过程提供了视图和控制器。只需转到 /home 进行全新安装,您应该会被重定向到登录页面。

还要确保阅读 文档中的身份验证部分


你现在得到的错误( TokenMismatchException )是因为 Laravel 有 开箱即用的 CSRF 保护

要使用它(并使错误消失),请在您的表单中添加一个隐藏字段:

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

或者,您也可以通过从 --- 中的 $middleware 数组中删除 'App\Http\Middleware\VerifyCsrfToken' 来禁用 CSRF 保护 app/Http/Kernel.php

原文由 lukasgeiter 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题