I'm new to programming. I have created a basic form inside views/register.blade.php like this
@section('content')
Registration Form
Please insert the informations bellow:
{{Form::open(array('url'=>'test/register','method'=>'post'))}}
{{Form::close()}}@stop
I have a controller. like this
public function create()
{
$user= Input::all();
$user = new User;
$user->username = Input::get('username');
$user->email = Input::get('email');
$user->password = Input::get('password');
$user->save();
return Redirect::back();
}
Here is my route:
Route::get('test/register', array('uses'=>'TestController@create'))
I can not register users through the form. Would you please suggest me how to do that?
解决方案
The error MethodNotAllowedHttpException means the route exists, but the HTTP method (GET) is wrong. You have to change it to POST:
Route::post('test/register', array('uses'=>'TestController@create'));
Also, you need to hash your passwords:
public function create()
{
$user = new User;
$user->username = Input::get('username');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();
return Redirect::back();
}
And I removed the line:
$user= Input::all();
Because in the next command you replace its contents with
$user = new User;
To debug your Input, you can, in the first line of your controller:
dd( Input::all() );
It will display all fields in the input.