我试图通过使用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');
答案 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');
}
);
它工作正常。