Laravel AuthController不更新功能体

时间:2016-03-13 20:11:28

标签: php laravel laravel-5 xampp

对于学校项目,我试图从我的项目核心中删除Eloquent(必须直接使用DB,不能使用ORM)。

我现在正在尝试修改AuthController的create函数,但它似乎没有更新。 (使用XAMPP和PHP7。)

正如您所看到的,我尝试用AuthController的create function中的DB :: insert语句替换User :: create default。

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.php第71行中的FatalThrowableError:致命错误:调用未定义的方法App \ User :: create()

我认为该函数需要的不仅仅是DB :: insert,它应该返回一个User对象的新实例,但是目前我甚至无法测试它会做什么,因为它仍在尝试调用旧的函数体。我甚至完全删除了User :: create部分。

这是XAMP吗?我没有问题更新和保存这个项目的其他文件,但这个控制器似乎没有通过它。

2 个答案:

答案 0 :(得分:0)

你要归还两件完全不同的东西。

return DB::insert

VS

return User::create

查看User :: create返回的内容并从那里开始。

答案 1 :(得分:0)

尝试清理Laravel缓存。然后使用:

return DB::insert(array(
     'firstname' => $data['firstname'],
     'lastname' => $data['lastname'],
     'birthday' => $data['birthday'],
     'gender' => $data['gender'],
     'email' => $data['email'],
     'password' => bcrypt($data['password'])
    )
  );

如果您仍然收到错误,请发布AuthController.php

第71行的内容