- Still WIP on removing annotations

This commit is contained in:
mcndave committed 2023-12-04 12:36:06 -05:00
1 parent 62792e8325
commit d9fa51fa18
5 files changed
+28 -16

No files matched your search

+5 -3
View File
@@ -4,7 +4,7 @@ namespace Ulmus\Entity\Sqlite;
use Ulmus\EntityCollection;
use Ulmus\Query\{From, Select};
use Ulmus\{Attribute\Obj\Table, Repository};
use Ulmus\{Attribute\Obj\Table, Repository, Ulmus};
use Ulmus\Attribute\Property\{Field, Filter, FilterJoin, Relation, Join, Virtual, Where};
#[Table(name: "sqlite_master")]
@@ -27,12 +27,14 @@ class Schema
#[Field]
public ? string $sql;
##[Relation("oneToMany", key: "tableName", foreignKey: "tableName", entity: Column::class)]
#[Virtual(method: "filterColumns")]
public EntityCollection $columns;
public function filterColumns() : EntityCollection
{
return ( new Repository\SqliteRepository(Column::class) )->pragma('table_info', $this->tableName)->collectionFromQuery();
$adapter = Ulmus::$registeredAdapters[$this->loadedFromAdapter];
return Column::repository(Repository\SqliteRepository::DEFAULT_ALIAS, $adapter)
->pragma('table_info', $this->tableName)->collectionFromQuery();
}
}
+6 -1
View File
@@ -3,6 +3,7 @@
namespace Ulmus\Entity\Sqlite;
use Ulmus\ConnectionAdapter;
use Ulmus\EntityCollection;
use Ulmus\Repository;
#[\Ulmus\Attribute\Obj\Table(name: "sqlite_master")]
@@ -10,12 +11,16 @@ class Table extends Schema
{
public static function repository(string $alias = Repository::DEFAULT_ALIAS, ConnectionAdapter $adapter = null): Repository
{
return new class(static::class, $alias, $adapter) extends Repository\SqliteRepository
$repository = new class(static::class, $alias, $adapter) extends Repository\SqliteRepository
{
public function finalizeQuery(): void
{
$this->select(Table::field('tableName'))->groupBy(Table::field('tableName'));
}
};
$repository->entityClass = static::class;
return $repository;
}
}