AuthController.php第62行中的FatalErrorException:调用未定义的方法App\User::create()

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

我正在尝试使用现成的注册功能在Laravel5.1中注册用户。 我做了这一切

当我填写登记表并提交时,我得到:

AuthController.php第62行中的FatalErrorException:调用未定义的方法App\User::create()

该方法是Laravel 5.1中的内置方法:

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);