public function installModule() { parent::installModule(); $this->container->get('db')->schema()->create('sections', function ($table) { $table->increments('id'); $table->string('name'); $table->string('code'); $table->integer('sort')->default(100)->nullable(); $table->integer('parent_id')->default(0)->nullable(); $table->text('detail_text')->nullable(); $table->string('detail_picture')->nullable(); $table->string('show_in_menu')->nullable(); $table->string('name_for_menu')->nullable(); $table->string('path')->nullable(); $table->char('active', 1)->default(1); $table->timestamps(); $table->index(['code', 'parent_id', 'path']); //$table->foreign('parent_id')->references('id')->on('sections'); }); $this->container->get('db')->schema()->table('pages', function ($table) { $table->integer('category_id')->default(0)->nullable(); //$table->foreign('category_id')->references('id')->on('sections'); }); $path = RESOURCE_PATH . 'models_field_info/pages.json'; $pagesField = FileWorker::getJsonDataFile($path); if (!$pagesField) { $pagesField = []; } $trigUrlPrefix = false; foreach ($pagesField as $field) { if ($field->name == 'url_prefix') { $field->type = "hidden"; $trigUrlPrefix = true; break; } } if (!$trigUrlPrefix) { $cId = new \stdClass(); $cId->name = "url_prefix"; $cId->type = "hidden"; $pagesField[] = $cId; } $cId = new \stdClass(); $cId->name = "category_id"; $cId->type = "select"; $pagesField[] = $cId; FileWorker::saveJsonFile($path, $pagesField); FileWorker::addItemInModelsFillable('Pages', 'category_id'); $this->saveConfigForModule(self::class, ["params" => ["installed" => true, "active" => true]]); }