Laravel从控制器函数插入到mysql db中

时间:2017-12-13 09:25:25

标签: laravel laravel-5

我试图通过使用Laravel .blade.php视图(php表单)将记录提交到包含许多字段的mysql表中

我做了一些试验,但我得到了

loginController.php第54行中的FatalErrorException:Class' App \ Http \ Controllers \ Input'找不到

Mysql

create table users(id int primary key auto_increment,username varchar(20),password varchar(20),createDate timestamp );

我的控制器功能

    public function formSubmit()
{
    if (Input::post())
    {
        $username = Input::get('username');
        $password = Input::get('password');


       DB::table('users')->insert(array ('username' => $username,'password' => $password));
       return View::make('view2')->with(array('username' =>$username, 'password' => $password));
    }
     }

view1.blade.php表单

 <form action="{{url('/view2') }}" method="POST"> 
 {{ csrf_field() }} 

   <input type ="hidden" name="">  
  User name:  <input type ="text" name="username">  <br/>
  Password     <input type="password" name="password">  <br/>

              <input type="submit" name="formSubmit" value="formSubmit"> 
 </form>

路线

    Route::get('/view1', 'loginController@formSubmit');

3 个答案:

答案 0 :(得分:0)

use Input;子句之后立即将namespace添加到班级的顶部。

或使用完整命名空间:

$username = \Input::get('username');
$password = \Input::get('password');

或者您可以使用only()方法从请求中获取数组:

DB::table('users')->insert(request()->only('username', password));

此外,永远不要保存原始密码。使用bcrypt()加密密码。

答案 1 :(得分:0)

由于您使用的是Laravel 5,请使用请求外观并以这种方式访问​​input

Request::input()

而不是使用Input();

https://laravel.com/docs/5.0/requests

并且,以防万一,将其包含在Controller的顶部

use Illuminate\Support\Facades\Request;

答案 2 :(得分:0)

参考Amarnasan回答我使用了请求并包括使用Illuminate \ Http \ Request;在我的控制器顶部。

所以我将控制器方法改为

  public function formSubmit(Request $req)
{

          $username =$req->input('username');
         $password =$req->input('password');

       DB::table('users')->insert(array ('username' => $username,'password' => $password));
       return view ('view2')->with(array('username' =>$username, 'password' => $password));

     }

}

我根据Shubham pokhriyal承诺改变我的路线:

Route::post('/view2', 'loginController@formSubmit');
Route::get('view1',function()
{
return view('view1');   
}
);

它工作正常。