laravel 中 'field list' 中的未知列 'uuid'
Unknown column 'uuid' in 'field list' in laravel
我正在尝试在我的 "users" [=52] 中创建一个包含 UUID 的列 "unique" =] 我不希望它成为主要的,当我尝试注册用户时,我遇到了这个错误 "Unknown column 'uuid' in 'field list'"
我创建了一个新的 laravel 项目,并在其上使用了 "Auth" 命令
如果您有任何其他方法来执行此操作,请分享我只想为我的用户提供一个唯一的 5 到 8 个字符的代码
这是我的用户迁移:-
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->uuid('unique');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
这是我的用户模型:-
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Webpatser\Uuid\Uuid;
use App\Models\Concerns\UsesUuid;
use Illuminate\Support\Str;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $guarded = []; // YOLO
public $incrementing = false;
protected $keyType = 'string';
protected static function boot()
{
parent::boot();
self::creating(function ($user) {
$user->uuid = (string) Uuid::generate(4);
});
}
protected $fillable = [
'name', 'email', 'password', 'uuid',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
这是我的数据库的照片:-
这是我第一次使用 UUID,所以我按照教程做了
因为我是 laravel 的初学者以及编程我不知道是什么问题
请帮忙
-谢谢
您的迁移脚本创建的列 unique
而不是 uuid
,这就是您得到 column uuid not not found
的原因。 (请查看您的 phpmyadmin 屏幕截图第二列)
将此 $table->uuid('unique');
更改为 $table->uuid('uuid')->unique();
,这可能会为您创建一个 uuid 列。
我正在尝试在我的 "users" [=52] 中创建一个包含 UUID 的列 "unique" =] 我不希望它成为主要的,当我尝试注册用户时,我遇到了这个错误 "Unknown column 'uuid' in 'field list'" 我创建了一个新的 laravel 项目,并在其上使用了 "Auth" 命令 如果您有任何其他方法来执行此操作,请分享我只想为我的用户提供一个唯一的 5 到 8 个字符的代码
这是我的用户迁移:-
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->uuid('unique');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
这是我的用户模型:-
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Webpatser\Uuid\Uuid;
use App\Models\Concerns\UsesUuid;
use Illuminate\Support\Str;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $guarded = []; // YOLO
public $incrementing = false;
protected $keyType = 'string';
protected static function boot()
{
parent::boot();
self::creating(function ($user) {
$user->uuid = (string) Uuid::generate(4);
});
}
protected $fillable = [
'name', 'email', 'password', 'uuid',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
这是我的数据库的照片:-
这是我第一次使用 UUID,所以我按照教程做了 因为我是 laravel 的初学者以及编程我不知道是什么问题 请帮忙
-谢谢
您的迁移脚本创建的列 unique
而不是 uuid
,这就是您得到 column uuid not not found
的原因。 (请查看您的 phpmyadmin 屏幕截图第二列)
将此 $table->uuid('unique');
更改为 $table->uuid('uuid')->unique();
,这可能会为您创建一个 uuid 列。