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条经验 获得超3个赞
即使表有行或没有行,它仍然返回该错误。因此,如果您不想要原始查询并且您的列没有值或有但不重要,只需删除列并创建新的列:
public function up()
{
Schema::table('job_listings', function (Blueprint $table) {
$table->dropColumn('company_id');
$table->integer('company_id');
});
}
- 2 回答
- 0 关注
- 137 浏览
添加回答
举报