当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.2认证将“id”更改为“customer\u id”

逑兴安
2023-03-14

在本主题中,我提出了一个问题:Laravel 5.2 auth change“users”表

但现在我的问题变了。默认情况下,用户表具有id。但是我想要一个客户id,所以我改变了一切,但它不起作用。它不断要求id。

SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“id”(SQL:select*fromklantenwhereid=1限制1)

在表中,我有一个客户id,但它一直要求一个id。

我改变的事情:

配置/验证

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
        'table' => 'klanten',
    ],

创建了klanten迁移

public function up()
{
    Schema::create('klanten', function (Blueprint $table) {
        $table->increments('klant_id');
        $table->string('voornaam');
        $table->string('email')->unique();
        $table->string('password', 64);
        $table->rememberToken();
        $table->boolean('status');
        $table->timestamps();
    });
}

如果我删除时间戳,它会继续要求created_atupdated_at

控制器/Auth/AuthController

protected function validator(array $data)
{
    return Validator::make($data, [
        'voornaam' => 'required|max:255',
        'email' => 'required|email|max:255|unique:klanten',
        'password' => 'required|confirmed|min:6',
    ]);
}

protected function create(array $data)
{
    return User::create([
        'voornaam' => $data['voornaam'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);
}

应用程序/用户

protected $table = 'klanten';

protected $fillable = [
    'voornaam', 'email', 'password',
];

我希望有人能帮我!


共有2个答案

谢豪
2023-03-14

您可以设置用户模型中的字段来指定表的主键:

protected $primaryKey = 'customer_id';
闾丘霖
2023-03-14

编辑用户模型并添加以下内容:

protected $primaryKey = 'customer_id';
 类似资料:
  • 我从excel表格中提取旧记录,并将它们移动到数据库中。 我有一张客户表和一张订单表。 customers表包含customer\u id---主键---自动递增First\u Name Last\u Name字段 orders表包含以下字段:customer_id(空将是customers表的外键)First_Name(已填充)Last_Name(已填充) 我需要从customers表中逐行选择

  • 我想更改Git默认远程分支目标,这样我就可以 而不是: 目前它被设置为源遥控器,我想把它设置为不同的遥控器。 我试图删除原来的(克隆的)遥控器 这确实删除了原始遥控器。但不能解决 问题。我仍然得到: 致命:没有配置的推送目标。从命令行指定 URL ,也可以使用以下命令配置远程存储库: 我还试着玩: 和其他选项,但似乎都不起作用(可能是因为我太快删除了源远程?) 按照这里的答案,我试图改变: 但两者

  • 问题内容: 我想使用一些需要Python的较新软件,并且我们目前已将它们同时安装在专用的CentOS服务器上,如下所示: 如何切换为默认使用? 问题答案: 作为根: 这将从/ usr / local / bin / python-> /usr/bin/python2.6建立符号链接(替换旧的硬链接)。

  • 单击“运行”时收到此消息: 错误消息“AndroidGradle插件需要Java11才能运行。您目前正在使用Java1.8”来更改设置工作中的格拉德尔JDK。但只适用于那个项目。当我创建一个新项目时,Android Studio会自动再次使用默认的1.8。 我有11个可用的,因为它不会自动使用。我尝试的事情:在这里将JAVA_HOMEenv更改为JDK 11的位置,但仍然得到相同的错误。 无效缓存

  • 问题内容: 我的数据库确实发生了一些奇怪的事情。我正在使用PHP将数据插入数据库中,并且在过去的两年中我一直在这样做,没有任何问题。当客户在我的网站上付款时,我会将交易中的所有数据存储在数据库中。每个交易都有一个唯一的“ transaction_id”。当我将付款信息插入数据库时​​,除“ transaction_id”外,所有信息均已正确插入。所有交易均被赋予“ 4294967295”的“ tr

  • 本文向大家介绍iOS Touch ID 身份认证,包括了iOS Touch ID 身份认证的使用技巧和注意事项,需要的朋友参考一下 iOS Touch ID 身份认证 iOS 8 及以后录了指纹的设备可以使用 touch ID 进行身份认证,指纹符合录入的指纹才能认证成功。 步骤 导入 LocalAuthentication 框架:import LocalAuthentication 初始化 LA