Files
ulmus/src/Entity/Sqlite/Schema.php
T

40 lines
986 B
PHP

<?php
namespace Ulmus\Entity\Sqlite;
use Ulmus\EntityCollection;
use Ulmus\Query\{From, Select};
use Ulmus\{Attribute\Obj\Table, Entity\EntityInterface, Repository, Ulmus};
use Ulmus\Attribute\Property\{Field, Filter, FilterJoin, Relation, Join, Virtual, Where};
#[Table(name: "sqlite_master")]
class Schema implements EntityInterface
{
use \Ulmus\EntityTrait;
#[Field\Id]
public ? string $name;
#[Field]
public ? string $type;
#[Field(name: "tbl_name")]
public ? string $tableName;
#[Field]
public ? int $rootpage;
#[Field]
public ? string $sql;
#[Virtual(method: "filterColumns")]
public EntityCollection $columns;
public function filterColumns() : EntityCollection
{
$adapter = Ulmus::$registeredAdapters[$this->loadedFromAdapter];
return Column::repository(Repository\SqliteRepository::DEFAULT_ALIAS, $adapter)
->pragma('table_info', $this->tableName)->collectionFromQuery();
}
}