laravel 5登记表

时间:2015-05-23 13:06:28

标签: eloquent laravel-5

我正在尝试在laravel 5中创建一个注册表单,它给了我这个错误:

  

糟糕,看起来出了问题。

     

1/1     在编译.php第2440行中的TokenMismatchException:

这是我的观点/ register.blade.php:

<form class="form-horizontal" action = "inregistrare_process" method = "POST">
.....
</form>

这是我的app / Register.php

    <?php namespace App;

use Illuminate\Database\Eloquent\Model;


class Register extends Eloquent {
        protected $guarded = array();
        protected $table = 'users'; 
        public $timestamps = 'false' ; 


        public static function saveFormData($data)
        {
            DB::table('users')->insert($data);
        }

}

这是我的Controllers / RegisterController.php

<?php namespace App\Http\Controllers;
use App\Register;
class RegisterController extends Controller {



public function store()
{
    Register::saveFormData(Input::except(array('_token')));
}

}

这是我的routes.php

Route::get('inregistrare',function(){

    return view('register');
});

Route::post('inregistrare_process', function()
{
        $obj = new RegisterController() ;
        return $obj->store();
});

有人可以帮助我完成这项工作,还是让我另外选择如何使注册页面有效?

1 个答案:

答案 0 :(得分:2)

  1. 首先,您需要一个隐藏的输入类型,其形式为
  2. 中的csrf_token

    在表单声明后插入下面的行

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    
    1. 您是否拥有会话文件的写入权限?默认会话存储在/ storage / framework / sessions /中 检查您是否拥有该目录的写入权限。

    2. 如果您使用的是Ajax请求,请将tokenMatch()方法添加到app / Http / Middleware / VerifyCsrfToken.php。

      protected function tokensMatch($request)
      {
          $token = $request->ajax() ? $request->header('X-CSRF-Token') : $request->input('_token');
      
          return $request->session()->token() == $token;
      }
      
    3. 并将其添加到您的js文件中

      $.ajaxSetup(
      {
          headers:
          {
              'X-CSRF-Token': $('input[name="_token"]').val()
          }
      });