2 回答

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

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