AuthController.php第62行中的FatalErrorException:调用未定义的方法App\User::create()
我正在尝试使用现成的注册功能在Laravel5.1中注册用户。 我做了这一切 当我填写登记表并提交时,我得到: AuthController.php第62行中的FatalErrorException:调用未定义的方法App\User::create() 该方法是Laravel 5.1中的内置方法:AuthController.php第62行中的FatalErrorException:调用未定义的方法App\User::create(),php,laravel,Php,Laravel,我正在尝试使用现成的注册功能在Laravel5.1中注册用户。 我做了这一切 当我填写登记表并提交时,我得到: AuthController.php第62行中的FatalErrorException:调用未定义的方法App\User::create() 该方法是Laravel 5.1中的内置方法: protected function create(array $data) { return User::create([ // <!-- it fails here
protected function create(array $data)
{
return User::create([ // <!-- it fails here
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
和我的AuthController
:
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
/**
* Create a new authentication controller instance.
*
* @return void
*/
private $redirectTo = '/';
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'password_confirmation' => 'required|min:6'
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
}
第1期:
您应该在路由中定义create
方法
Route::post('create','yourController@create');代码>
第二期:
我猜你是混合了get和post,如果你使用get方法,那么你需要通过url传递所有数据,这似乎不好,我建议你改用post
方法,所以我在post方法中编写了路由
public function create()
{
$userData = Input::except('_token');
User::create($userData);
}
警告:您没有验证输入
您可以通过创建
$validation = Validator::make($userData, User::$userData);
if ($validation->passes())
{
//do Create Action here and return success
}
{
//return failure messages to view
}
您可以在用户
模型中定义$postData
规则
更新:因为我发现您使用的是默认的身份验证和注册用户
,感谢您指出它
在create()方法中
您将获得输入并按此方式打印以进行测试
$userData = Input::except('_token');
return $userData;
然后完成(插入)
希望这对您有所帮助我的用户模型没有扩展模型!问题解决了 routes.php中的create()方法在哪里?如果将其存储在$userData
中并执行User::create($userData),会发生什么情况代码>?他正在使用默认的AuthController,它具有AuthenticatesAndRegistersUsers
特性。这个特性确实验证了输入,它有一个postRegister
方法,调用创建用户的create
方法。啊,我没有注意到,我会相应地更改答案。谢谢:)
$userData = Input::except('_token');
return $userData;
User::create($userData);