2 回答

TA貢獻1784條經驗 獲得超9個贊
您必須指定顯式轉換,因為沒有從文本或 varchar 到整數的隱式(自動)轉換。我不知道 Laravel 函數來指定強制轉換,因此我建議您使用原始 DB 語句來實現此目的。
你可以這樣做:
public function up()
{
DB::statement('ALTER TABLE job_listings ALTER COLUMN
company_id TYPE integer USING (company_id)::integer');
}
在某些情況下,文本或 varchar 字段中可能存在空格,因此您必須在轉換之前進行修剪
public function up()
{
DB::statement('ALTER TABLE job_listings ALTER COLUMN
company_id TYPE integer USING (trim(company_id))::integer');
}

TA貢獻1780條經驗 獲得超4個贊
即使表有行或沒有行,它仍然返回該錯誤。因此,如果您不想要原始查詢并且您的列沒有值或有但不重要,只需刪除列并創建新的列:
public function up()
{
Schema::table('job_listings', function (Blueprint $table) {
$table->dropColumn('company_id');
$table->integer('company_id');
});
}
- 2 回答
- 0 關注
- 203 瀏覽
添加回答
舉報