Laravel 5.0 的 Route::post 渲染一个空页面,为啥当 Route::get 工作正常时会这样

Posted

技术标签:

【中文标题】Laravel 5.0 的 Route::post 渲染一个空页面,为啥当 Route::get 工作正常时会这样【英文标题】:Laravel 5.0's Route::post renders an empty page, why is this when Route::get works just fineLaravel 5.0 的 Route::post 渲染一个空页面,为什么当 Route::get 工作正常时会这样 【发布时间】:2015-04-17 00:03:21 【问题描述】:

我是 laravel 和 php 的新手。我正在尝试使用基本表单,但是当我想使用 Route::post() 时,我得到一个空页面。 我查看了多个教程,但找不到我的(失败的)代码和工作示例之间的任何差异。

我的路线.php:

<?php

Route::get('/', function() 
    return view('index');
);

Route::post('creating', function() 
    return 'Creating something';
);

index.blade.php:

<br>
<form action='creating' method='post'>
    <button type="submit"> Create something </button>
</form>
</br>

我在 OS X Yosemite 上使用 Laravel 5.0 和 XAMPP。 如前所述:

本地主机/测试/公共

将使用“创建内容”按钮呈现页面。但是当按下它时,我得到一个空白页面(网址将是:localhost/test/public/creating)

编辑: 我尝试将“creating”更改为“/creating”,这没有任何区别。

编辑2: 改为:

Route::get(creating, function() 
    return 'Creating something';
)

method = 'get'

确实有效。

【问题讨论】:

而不是创建尝试将 /creating 放入您的 routes.php 文件中 我已经试过了,没有任何区别。但是感谢您的评论,我将其添加到说明中。 路由改成Route::get(),form方法改成method="get",能用吗? 如果我将其更改为 Route::get()method='get' 它确实有效.. 这是什么意思? 【参考方案1】:

在检查错误日志后(呃?!)我注意到 storage/ 目录的权限不足。 修复此问题后,我仍然需要:

    "illuminate/html": "5.0.*" 添加到composer.json 文件中。 将'lluminate\Html\HtmlServiceProvider' 添加到提供程序数组中,然后 'Form'=> 'Illuminate\Html\FormFacade', 'HTML'=> 'Illuminate\Html\HtmlFacade' 到 config/app.php 文件中的别名数组。 将!! Form::token() !! 添加到视图中

这解决了整个问题

【讨论】:

以上是关于Laravel 5.0 的 Route::post 渲染一个空页面,为啥当 Route::get 工作正常时会这样的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Route POST Validation 通过 URL 访问

Laravel 8 api post route 无法正常工作

laravel route路由

如何从laravel route post将数据保存到mysql数据库中

laravel -- 路由

laravel Route post 提交TokenMismatchException in VerifyCsrfToken.php line 53: