亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

變體字段 id 大小大于 1 的 Laravel 變體表

變體字段 id 大小大于 1 的 Laravel 變體表

PHP
qq_笑_17 2023-03-26 14:25:22
我有一個具有以下結構的個人訪問令牌表:public function up(){    Schema::create('personal_access_tokens', function (Blueprint $table) {        $table->bigIncrements('id');        $table->morphs('tokenable');        $table->string('name');        $table->string('token', 64)->unique();        $table->text('abilities')->nullable();        $table->timestamp('last_used_at')->nullable();        $table->timestamps();    });}現在,當我有一個自動遞增的整數作為我的用戶 ID 將在此表中存儲訪問令牌時,這工作正常,但我已將我的用戶 ID 更改為 uuid?,F在,由于tokenable_id無法存儲 uuid(我認為),在創建personal_access_tokens時出現以下錯誤"SQLSTATE[01000]: Warning: 1265 Data truncated for column 'tokenable_id' at row 1 (SQL: insert into `personal_access_tokens` (`name`, `token`, `abilities`,     `tokenable_id`, `tokenable_type`, `updated_at`, `created_at`) values (my-token,      ef16e51c374d0a2dddf029b29f59ae62eb518c64f2f19945f7adc2cd67548ca7, [\"*\"],      96481014-efb0-42ce-9037-1f256c074976, App\\User,      2020-05-15 21:08:39, 2020-05-15 21:08:39))",知道如何更改 tokenable_id 字段以接受 uuid 嗎?
查看完整描述

2 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

由于列的數據類型必須匹配,并且模型的主鍵User具有uuid格式,因此morphs()在這種情況下該方法對您不起作用。您可以手動創建列,正如您在評論中指出的那樣,但是(從 laravel 5.8 版開始)該uuidMorphs()方法也可用。

創建列?可用的列類型


$table->morphs('taggable');

添加taggable_id?UNSIGNED BIGINTtaggable_type?VARCHAR等效列。


$table->uuidMorphs('taggable');

添加taggable_id?CHAR(36)taggable_type?VARCHAR(255) UUID等效列。


查看完整回答
反對 回復 2023-03-26
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

上面的答案是正確答案,我想補充一下,你也可以使用

            $table->ulidMorphs('taggable');

對于那些使用 ulid id 而不是 uuid 的人,


查看完整回答
反對 回復 2023-03-26
  • 2 回答
  • 0 關注
  • 188 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號