Laravel 5 POST数据到DB

时间:2015-08-03 09:16:18

标签: laravel laravel-5

我想使用POST请求将数据插入到数据库

table food_directory

id(自动增量) 名称 果糖 polylos 果聚糖

  public function postDirec()
    {
        if (\Request::ajax()) {
            $FodMaps = \Request::get('name');
            \DB::table('food_directory')->insert([
                'food_directory' => $FodMaps,
            ]);
        }
    }

路线

Route::post('postDirec', 'FodMapController@postDirec');

这将返回Tokenmismatch问题..请咨询

3 个答案:

答案 0 :(得分:0)

您需要在表单中添加CSRF令牌,方法是在表单的开始和结束标记之间的某处添加此行:

{!! csrf_field() !!}

答案 1 :(得分:0)

转到App\Http\Kernel.php

并注释掉这一行

\App\Http\Middleware\VerifyCsrfToken::class,

如果您没有进行任何其他更改,那么该文件中应该是第20行。

答案 2 :(得分:0)

如果你想在某些路线上禁用csrf保护,你可以采用这种方法。

app/Http/Middlewares/VerifyCsrfToken.php修改handle方法中

    //disable CSRF check on following routes
    $skip = [
        '/your-uri/you-want-to-disable-protection-for',
        route('or_some_route')
    ];

    foreach ($skip as $route) {
        if ($request->is($route)) {
            return $this->addCookieToResponse($request, $next($request));
        }
    }

    return parent::handle($request, $next);

将要禁用的uri放入skip数组中。然后它将调用父级的addCookieToResponse方法,该方法将CSRF令牌设置为cookie,并且请求将被视为受保护。