这是我的迁移表模式
public function up()
{
Schema::create('ip_users', function (Blueprint $table) {
$table->id('user_id',10);
$table->string('user_uuid_id',60);
$table->string('user_name',30);
$table->string('user_email',30);
$table->string('user_password',100);
$table->boolean('user_active');
$table->timestamp('user_date_created')->useCurrent();
$table->timestamp('user_date_modified')->useCurrent();
$table->comment("Registered user's credentials");
});
}下面是我对迁移表的对应模型
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class IPUsers extends Model
{
use HasFactory;
/* Our own defined primay key */
protected $table = 'ip_users';
public $incrementing = false;
protected $primaryKey = 'user_PK_id';
/* To tell the eloquent model that our PrimaryKey type is not an integer*/
protected $keyType = 'string';
}当我执行php artisan migrate时,模式被存储为'user_id‘作为主键,但我希望'user_uuid_id’成为主键。为什么迁移在迁移之前不读取“IPUsers”模型,或者迁移不是那样工作的?
如果模型有另一个目的,它是什么?
如果迁移不是那样工作的,那么如何将PK设置为我自己的列而不是默认的id?
我在laracasts中读到,laravel没有实现自定义的PK。解决这个问题的办法是什么?
发布于 2022-09-07 07:21:58
只需向uuid字段添加primary()。
$table->string('user_uuid_id',60)->primary();https://stackoverflow.com/questions/73631469
复制相似问题