laravel“SQLSTATE[HY000]:一般错误:1 没有这样的表:用户”但存在“用户”表

Inu*_*Aji 1 php sqlite laravel

我正在运行 Laravel 5.2,在 Windows 8.1 上使用 XAMPP 和 php 7.2,我正在尝试使用带有 sqlite 数据库的 laravel auth 注册表来注册用户。但是,当我尝试将新记录插入表时users,出现错误。

SQLSTATE[HY000]:一般错误:1 没有这样的表:用户

当我迁移数据库时,它会创建用户表。但是当我尝试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');
}
Run Code Online (Sandbox Code Playgroud)

用户模型

class User extends Authenticatable{
    protected $primaryKey = 'user_id';

    protected $fillable = [
        'name', 'role', 'username', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
}
Run Code Online (Sandbox Code Playgroud)

身份验证控制器

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']),
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助和抱歉英语不好。

Fir*_*nis 5

您的问题在验证中:

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',
    ]);
}
Run Code Online (Sandbox Code Playgroud)

您正在检查用户名在usernot 中是否唯一users,试试这个:

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|max:255',
        'role' => 'required|max:7',
        'username' => 'required|unique:users,username',
        'password' => 'required|min:6|confirmed',
    ]);
}
Run Code Online (Sandbox Code Playgroud)

此外,您可能希望对迁移添加唯一约束。