对于一个学校项目,我正在尝试从项目的核心中删除Eloquent(必须直接使用DB,不能使用ORM)。
我现在正在尝试修改AuthController的创建功能,但它似乎没有更新。(将 XAMPP 与 PHP7 一起使用。
如您所见,我试图将User::create默认值替换为AuthController的create函数中的DB::insert语句。
protected function create(array $data)
{
return DB::insert('INSERT INTO users (firstname,lastname,birthday,gender,email,password) values(?,?,?,?,?,?)',
array(
$data['firstname'],
$data['lastname'],
$data['birthday'],
$data['gender'],
$data['email'],
bcrypt($data['password'])
)
);
// OLD FUNCTION BODY:
/*return User::create([
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'birthday' => $data['birthday'],
'gender' => $data['gender'],
'email' => $data['email'],
'password' => bcrypt($data['password'])
]);*/
}
但现在我不断得到:
AuthController中的FatalThrowableError.php第71行:致命错误:调用未定义的方法App''User::create()
我相信该函数需要的不仅仅是DB::insert,正如它所说,它应该返回User对象的新实例,但目前我什至无法测试这将做什么,因为它仍在尝试调用旧的函数体。我什至完全删除了用户::创建部分。
这是XAMP的东西吗?我在更新和保存该项目的其他文件时没有问题,但是这个控制器似乎无法通过。
尝试清理Laravel缓存。然后使用这个:
return DB::insert(array(
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'birthday' => $data['birthday'],
'gender' => $data['gender'],
'email' => $data['email'],
'password' => bcrypt($data['password'])
)
);
如果您仍然收到错误,请发布第 71 行AuthController.php
你返回的是两个完全不同的东西。
return DB::insert
与
return User::create
查看 User::create 返回的内容,然后从那里开始。