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 post将数据保存到mysql数据库中
laravel Route post 提交TokenMismatchException in VerifyCsrfToken.php line 53: