Laravel迁移构建为一对多关系

时间:2017-09-11 11:20:27

标签: laravel migration

我尝试通过以下迁移代码调整一对多关系中的两个。

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');
    }
}

0 个答案:

没有答案