Level 36
@Flex try
Schema::create('tasks', function (Blueprint $table) {
$table->increments('id');
$table->integer('project_id', false, true)->index()->comment = 'Project';
$table->integer('task_id', false, true)->nullable(); //Parent task, if exists
$table->string('name')->nullable();
$table->foreign('project_id', 'fk__tasks__project_id')
->references('id')
->on('projects')
->onDelete('cascade');
$table->foreign('task_id', 'fk__tasks__task_id')
->references('id')
->on('tasks')
->onDelete('cascade');
});
So your models will work. In order to create a subtask, simply fill in the task_id field