- Still WIP on removing annotations
This commit is contained in:
1 parent
62792e8325
commit
d9fa51fa18
5 files changed
+28
-16
No files matched your search
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user