【问题标题】:Using different Table for Authentication in Laravel 5.1在 Laravel 5.1 中使用不同的表进行身份验证
【发布时间】:2015-12-10 01:33:56
【问题描述】:

我为用户创建了一个不同的表,我创建了一个模型并在 auth.php 文件中更改了表名和模型名,但仍然出现此错误

Connection.php 第 651 行中的 QueryException:

SQLSTATE[42S02]: 未找到基表或视图:1146 表 'grpchat_db.users' 不存在

有什么想法吗?

超级管理员模型的代码。我想用这个替换用户模型

namespace GroupChat;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class SuperAdmin extends Model implements AuthenticatableContract,
                                    AuthorizableContract,
                                    CanResetPasswordContract
{
    use Authenticatable, Authorizable, CanResetPassword;

    protected $fillable = ['name', 'email', 'password'];
} ?>

auth.php

<?php

return [

/*
|--------------------------------------------------------------------------
| Default Authentication Driver
|--------------------------------------------------------------------------
|
| This option controls the authentication driver that will be utilized.
| This driver manages the retrieval and authentication of the users
| attempting to get access to protected areas of your application.
|
| Supported: "database", "eloquent"
|
*/

'driver' => 'eloquent',

/*
|--------------------------------------------------------------------------
| Authentication Model
|--------------------------------------------------------------------------
|
| When using the "Eloquent" authentication driver, we need to know which
| Eloquent model should be used to retrieve your users. Of course, it
| is often just the "User" model but you may use whatever you like.
|
*/

'model' => GroupChat\SuperAdmin::class,

/*
|--------------------------------------------------------------------------
| Authentication Table
|--------------------------------------------------------------------------
|
| When using the "Database" authentication driver, we need to know which
| table should be used to retrieve your users. We have chosen a basic
| default value but you may easily change it to any table you like.
|
*/

'table' => 'super_admins',

/*
|--------------------------------------------------------------------------
| Password Reset Settings
|--------------------------------------------------------------------------
|
| Here you may set the options for resetting passwords including the view
| that is your password reset e-mail. You can also set the name of the
| table that maintains all of the reset tokens for your application.
|
| The expire time is the number of minutes that the reset token should be
| considered valid. This security feature keeps tokens short-lived so
| they have less time to be guessed. You may change this as needed.
|
*/

'password' => [
    'email'  => 'emails.password',
    'table'  => 'password_resets',
    'expire' => 60,
],

];

【问题讨论】:

  • protected $table = "table_name";?
  • 没有 @TimLewis ,它不适用于此
  • @iCode4U 我有所有必需的列,并按照我所说的更改了表名。
  • @mallaudin 这不是验证错误,但有时验证可能有unique:usersexists:users,email

标签: php mysql laravel-5.1


【解决方案1】:

根据我们在 cmets 中的对话,我将我的 cmets 发布在答案中。

还要检查您的控制器和验证规则。这不是验证错误,但有时验证可能有unique:usersexists:users,email

【讨论】:

    【解决方案2】:

    验证规则有问题,它被设置为 uniuqe:users。用 super_admins (在这种情况下为表名)替换用户解决了这个问题。

    【讨论】:

    • 问题由 cmets 中的 @smartrahat 识别
    猜你喜欢
    • 2016-05-23
    • 2016-03-21
    • 2015-09-23
    • 2021-02-08
    • 2021-10-06
    • 2016-01-25
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多