【发布时间】:2018-10-29 02:29:59
【问题描述】:
我在 Windows 8.1 上使用 XAMPP 和 php 7.2 运行 Laravel 5.2,我正在尝试使用 laravel auth 注册表单和 sqlite 数据库注册用户。但是,当我尝试将新记录插入表 users 时出现错误。
SQLSTATE[HY000]: 一般错误: 1 no such table: user
当我迁移数据库时,它会创建用户表。但是,当我尝试使用注册表在users 表中插入新记录时,它会尝试访问user 表。所以我在数据库中创建了user 表,它工作正常,但记录插入到users 表中,而不是user 表中。
迁移
public function up(){
Schema::create('users', function (Blueprint $table) {
$table->increments('user_id');
$table->string('name');
$table->string('role');
$table->string('username');
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down(){
Schema::drop('users');
}
用户模型
class User extends Authenticatable{
protected $primaryKey = 'user_id';
protected $fillable = [
'name', 'role', 'username', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
}
AuthController
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $redirectTo = '/';
protected $username = 'username';
public function __construct()
{
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'role' => 'required|max:7',
'username' => 'required|unique:user',
'password' => 'required|min:6|confirmed',
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'role' => $data['role'],
'username' =>$data['username'],
'password' => bcrypt($data['password']),
]);
}
}
感谢您的帮助,抱歉英语不好。
【问题讨论】:
-
不确定是否只是拼写错误,但没有
user表,而是有users表。无论如何,雄辩的模型应该自动插入到该表中。编辑:没关系,我看到你已经注意到了。 -
是的,我想是的,但是当我尝试使用 protected $table = 'tb_user' 进行更改时,它仍在尝试访问用户表。
-
看我的回答,它解决了你的问题
-
您还有什么问题吗?
-
感谢您的建议。目前没有问题。