我刚刚开始,所以请原谅我.我对CodeIgniter有扎实的把握,所以我理解发生了什么.但是,我在创建表单时注意到我的CSRF令牌是空的.我正在通过laracasts视频来了解Laravel工作流程.
myfile.blade.php
{!! Form::open((array('action' => 'MyController@method'))) !!} ... {{!! Form::close() !!}}
这是我查看源代码时得到的内容:
我查看了配置目录,但没有看到必须启用csrf.在我需要更新的地方是否有其他设置?
谢谢你的建议.
编辑
甚至这给了我一个空的隐藏输入字段:
{{ Form::token() }} //
编辑
这是我的控制器的样子:
//use Illuminate\Http\Request; use Request; use App\Article; use App\Http\Requests; use App\Http\Controllers\Controller; public function store(Request $request) { $input = Request::all(); return $input; }
所以我更新的表单标签如下所示:
{!! Form::open((array('action' => 'ArticleController@store'))) !!} ...
当我提交时,我可以看到json响应 - 令牌显然是空的.
{"_token":"","title":"test","body":"test"}
Thomas Kim.. 26
Laravel Fundamental系列适用于Laravel 5.0,因此您有几个选择.您可以安装Laravel 5.0以继续该系列.要安装L5.0,您需要运行以下命令:
composer create-project laravel/laravel {directory} "~5.0.0" --prefer-dist
如果你想使用Laravel 5.2(我建议和Jeffrey Way很可能会很快发布一个系列),还有几件需要考虑的事情.
首先,将所有路由放在"web"中间件组中,如下所示:
Route::group(['middleware' => ['web']], function () { // Put your routes inside here });
过去,默认情况下,每个请求都运行了几个中间件.在5.2中,情况已不再如此.例如,令牌存储在会话中,但在5.2中,诸如"StartSession"中间件之类的东西不会自动应用.因此,需要将"Web"中间件应用于您的路由.5.2中此更改的原因:
中间件组允许您在一个方便的密钥下将多个路由中间件组合在一起,允许您一次为路由分配多个中间件.例如,在同一应用程序中构建Web UI和API时,这非常有用.您可以将会话和CSRF路由
web
分组到一个组中,也可以将组中的速率限制器api
分组.
此外,在Laravel Fundamental系列中,Jeffrey引入了"illuminate/html"包,但现在,大多数人都使用laravel集体包.他们处理了很多从核心中取出的Laravel软件包.结果,我会删除"illuminate/html"包.在您的composer.json
文件中,删除"illuminate/html: 5.0"
(或要求部分中的任何内容).此外,删除您添加到config/app.php
文件中的相应服务提供商并形成外观.
要安装laravel集体的版本,在您添加此composer.json
文件,而不是:"laravelcollective/html": "5.2.*-dev"
.然后,跑composer update
.完成后,在您的config/app.php
文件中,将其添加到您的providers数组:
Collective\Html\HtmlServiceProvider::class,
并将其添加到您的别名数组:
'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class,
我希望我不会错过任何其他内容.
Laravel Fundamental系列适用于Laravel 5.0,因此您有几个选择.您可以安装Laravel 5.0以继续该系列.要安装L5.0,您需要运行以下命令:
composer create-project laravel/laravel {directory} "~5.0.0" --prefer-dist
如果你想使用Laravel 5.2(我建议和Jeffrey Way很可能会很快发布一个系列),还有几件需要考虑的事情.
首先,将所有路由放在"web"中间件组中,如下所示:
Route::group(['middleware' => ['web']], function () { // Put your routes inside here });
过去,默认情况下,每个请求都运行了几个中间件.在5.2中,情况已不再如此.例如,令牌存储在会话中,但在5.2中,诸如"StartSession"中间件之类的东西不会自动应用.因此,需要将"Web"中间件应用于您的路由.5.2中此更改的原因:
中间件组允许您在一个方便的密钥下将多个路由中间件组合在一起,允许您一次为路由分配多个中间件.例如,在同一应用程序中构建Web UI和API时,这非常有用.您可以将会话和CSRF路由
web
分组到一个组中,也可以将组中的速率限制器api
分组.
此外,在Laravel Fundamental系列中,Jeffrey引入了"illuminate/html"包,但现在,大多数人都使用laravel集体包.他们处理了很多从核心中取出的Laravel软件包.结果,我会删除"illuminate/html"包.在您的composer.json
文件中,删除"illuminate/html: 5.0"
(或要求部分中的任何内容).此外,删除您添加到config/app.php
文件中的相应服务提供商并形成外观.
要安装laravel集体的版本,在您添加此composer.json
文件,而不是:"laravelcollective/html": "5.2.*-dev"
.然后,跑composer update
.完成后,在您的config/app.php
文件中,将其添加到您的providers数组:
Collective\Html\HtmlServiceProvider::class,
并将其添加到您的别名数组:
'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class,
我希望我不会错过任何其他内容.