/** * @inheritdoc */ public function process(EloquentModel $model, Config $config) { $schemaManager = $this->databaseManager->connection()->getDoctrineSchemaManager(); $prefix = $this->databaseManager->connection()->getTablePrefix(); $tableDetails = $schemaManager->listTableDetails($prefix . $model->getTableName()); $primaryColumnNames = $tableDetails->getPrimaryKey()->getColumns(); $columnNames = []; foreach ($tableDetails->getColumns() as $column) { $model->addProperty(new VirtualPropertyModel($column->getName(), $this->typeRegistry->resolveType($column->getType()->getName()))); if (!in_array($column->getName(), $primaryColumnNames)) { $columnNames[] = $column->getName(); } } $fillableProperty = new PropertyModel('fillable'); $fillableProperty->setAccess('protected')->setValue($columnNames)->setDocBlock(new DocBlockModel('@var array')); $model->addProperty($fillableProperty); return $this; }
/** * @param EloquentModel $model * @return $this */ protected function setFields(EloquentModel $model) { $tableDetails = $this->manager->listTableDetails($model->getTableName()); $primaryColumnNames = $tableDetails->getPrimaryKey()->getColumns(); $columnNames = []; foreach ($tableDetails->getColumns() as $column) { $model->addProperty(new VirtualPropertyModel($column->getName(), $this->resolveType($column->getType()->getName()))); if (!in_array($column->getName(), $primaryColumnNames)) { $columnNames[] = $column->getName(); } } $fillableProperty = new PropertyModel('fillable'); $fillableProperty->setAccess('protected')->setValue($columnNames)->setDocBlock(new DocBlockModel('@var array')); $model->addProperty($fillableProperty); return $this; }