我是编程新手。我在views / register.blade.php中创建了一个基本表单,如下所示
@section('content')
<h1>Registration Form</h1><hr>
<h3>Please insert the informations bellow:</h3>
{{Form::open(array('url'=>'test/register','method'=>'post'))}}
<input type="text" name="username" placeholder="username"><br><br>
<input type="text" name="email" placeholder="email"><br><br>
<input type="password" placeholder="password"><br><br>
<input type="submit" value="REGISTER NOW!">
{{Form::close()}}@stop
我有一个控制器。像这样
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();
}
这是我的路线:
Route::get('test/register', array('uses'=>'TestController@create'))
我无法通过表单注册用户。你能建议我怎么做吗?
答案 0 :(得分:9)
错误MethodNotAllowedHttpException表示路由存在,但HTTP方法(GET)错误。您必须将其更改为POST:
Route::post('test/register', array('uses'=>'TestController@create'));
此外,您需要哈希密码:
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();
}
我删除了该行:
$user= Input::all();
因为在下一个命令中用
替换其内容$user = new User;
要调试输入,您可以在控制器的第一行:
dd( Input::all() );
它将显示输入中的所有字段。
答案 1 :(得分:2)
确保使用 POST 插入数据。实际上你正在使用 GET 。
答案 2 :(得分:0)
你可以尝试这个第一种方法
$department->department_name = $request->department_name;
$department->status = $request->status;
$department->save();
使用create function
将记录插入数据库的另一种方法$department = new Department;
// Another Way to insert records
$department->create($request->all());
return redirect('admin/departments');
您需要在Department模型中设置填充
namespace App;
use Illuminate\Database\Eloquent\Model;
class Department extends Model
{
protected $fillable = ['department_name','status'];
}