- Work done on Repository and QueryBuilder -- fixed some minor bugs and added some delete() functions

- Added a generic SQL query function to PDOObject
This commit is contained in:
Dave Mc Nicoll committed 2019-12-19 09:54:33 -05:00
1 parent b589ba3c2b
commit 9df7e65dcf
10 files changed
+139 -31

No files matched your search

+40
View File
@@ -38,6 +38,7 @@ class Repository
public function loadFromPk($value, $primaryKey = "id") : EntityCollection
{
# var_dump("<pre>", $primaryKey);die();
return $this->where($primaryKey, $value)->loadOne();
}
@@ -46,6 +47,21 @@ class Repository
return $this->where($field, $value)->collectionFromQuery();
}
public function deleteOne()
{
return $this->limit(1)->deleteSqlQuery()->runQuery();
}
public function deleteAll()
{
return $this->deleteSqlQuery()->runQuery();
}
public function deleteFromPk($value, $primaryKey = "id")
{
return $this->where($primaryKey, $value)->deleteOne();
}
public function yieldAll() : \Generator
{
@@ -57,6 +73,12 @@ class Repository
return $this;
}
public function delete() : self
{
$this->queryBuilder->delete($this->alias);
return $this;
}
public function from($table) : self
{
foreach((array) $table as $alias => $table) {
@@ -229,6 +251,11 @@ class Repository
return $entityCollection;
}
public function runQuery()
{
return Ulmus::runQuery($this->queryBuilder);
}
protected function selectSqlQuery() : self
{
if ( ! $this->queryBuilder->has(Query\Select::class) ) {
@@ -242,6 +269,19 @@ class Repository
return $this;
}
protected function deleteSqlQuery() : self
{
if ( ! $this->queryBuilder->has(Query\Delete::class) ) {
$this->delete();
}
if ( ! $this->queryBuilder->has(Query\From::class) ) {
$this->from([ $this->alias => $this->entityResolver->tableName() ]);
}
return $this;
}
protected function fromRow($row) : self
{