繁体   English   中英

哎呀,看起来像出事了。 LARAVEL错误

[英]Whoops, looks like something went wrong. LARAVEL ERROR

我想在Laravel中进行基本的登录/注销 因此,我在resources/views下创建了一个名为auth的新文件夹,然后制作了一个新文件login.blade.php将其插入其中:

   <html>
<body>
<form>
<input type="text" name="email" placeholder="email" size="40"><br><br>
<input type="password" name="password" placeholder="password" size="40"><br><br>
<input hidden name="_token" value="{{csrf_token}}">
<input type="submit" value="send"> 
</form>
</body>
</html>

之后,我像这样编辑web.php:

    Route::get('/', function () {
    return view('welcome'); });

Route::get('/home', function () {
    return view('welcome'); });

Route::get('/login', function () {
    return view('auth.login'); });

Route::post('/login','Auth\LoginController@login');

Route::post('/logout','Auth\LoginController@logout');

因此它应该可以正常工作,因为一切都有意义,但是每当我进入登录URL时,都会看到以下错误消息:

6c95db2d362954448afd30aa9a2bf2cb0fc31937.php第6行中的ErrorException:使用未定义的常量csrf_token-假定为'csrf_token'(查看:G:\\ xampp \\ htdocs \\ o2architect \\ root \\ laravel \\ resources \\ views \\ auth \\ login.blade.php)

那么谁能告诉我这是怎么回事?

更改:

<input hidden name="_token" value="{{csrf_token}}">

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

然后再试一次。

请尝试以下,希望这项工作对您有所帮助!

<html>
<body>
<form>
<input type="text" name="email" placeholder="email" size="40"><br><br>
<input type="password" name="password" placeholder="password" size="40"><br><br>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="submit" value="send"> 
</form>
</body>
</html>

csrf_tokenLaravel的帮助函数,因此您必须用括号将其调用。

只是改变

<input hidden name="_token" value="{{csrf_token}}">

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

建议

您可以使用{!! csrf_field() !!} {!! csrf_field() !!} ,它将使用CSRF令牌创建隐藏的输入字段。

在显示的表单上方的代码中,是GET Request表单,您必须将其更改为action="POST"并且GET请求表单也可以在没有CSRF令牌的情况下工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM