我尝试通过以下迁移代码调整一对多关系中的两个。
Jobs表与Customers表和Users表有多对一的关系。
但是发生了如下错误。
1)语法错误或访问冲突:1067“time_end”的默认值
2)错误:150“外键约束形成错误”
错误后,我修改了值类型如何将timestamp更改为datetime并删除了customer_id外键。然后没有创建迁移表的错误成功签名。
基本上我希望用time_start(来自created_at datetime)和time_end(now()方法或Carbon)计算使用时间来获取time_end,所以这也是问题。我需要你的善意帮助。谢谢
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateJobsTable extends Migration
{
public function up()
{
Schema::create('jobs', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned()->index();
$table->integer('customer_id')->unsigned()->index();
$table->string('job_type');
$table->text('note_1');
$table->timestamp('time_start');
$table->timestamp('time_end');
$table->timestamp('time_used');
$table->timestamps();
$table->foreign('user_id')->references('id')
->on('users')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('customer_id')->references('id')
->on('customers')->onUpdate('cascade')->onDelete('cascade');
});
}
public function down()
{
Schema::dropIfExists('jobs');
}
}