Compare commits

...

2 Commits

Author SHA1 Message Date
Dave Mc Nicoll
47953a6165 Merge branch 'master' of https://git.mcnd.ca/mcndave/ulmus 2020-10-06 11:39:01 -04:00
Dave Mc Nicoll
07ba3f611b - Refractored Date/time fields
- Added an implode function on EntityCollection
2020-10-06 11:35:54 -04:00
4 changed files with 19 additions and 10 deletions

View File

@ -4,11 +4,8 @@ namespace Ulmus\Entity\Field;
class Date extends Datetime {
public function __toString()
{
return $this->format("Y-m-d");
}
public string $format = "Y-m-d";
public function formatLocale(string $format) : string
{
return strftime($format, $this->getTimestamp());

View File

@ -4,9 +4,6 @@ namespace Ulmus\Entity\Field;
class Time extends Datetime {
public function __toString()
{
return $this->format("H:i:s");
}
public string $format = "H:i:s";
}

View File

@ -122,6 +122,17 @@ class EntityCollection extends \ArrayObject {
return $list;
}
public function implode(string $glue, ? Callable $callback = null) : string
{
$values = [];
foreach($this as $item) {
$values[] = $callback ? $callback($item) : (string) $item;
}
return implode($glue, $values);
}
public function toArray(bool $includeRelations = false) : array {
$list = [];
@ -131,7 +142,7 @@ class EntityCollection extends \ArrayObject {
return $list;
}
public function fromArray(array $datasets, ? string $entityClass = null) : self
{
if ( ! ($this->entityClass || $entityClass) ) {

View File

@ -110,6 +110,10 @@ trait EntityTrait {
$bridgeRelation = $bridgeEntity->searchFieldAnnotation($relation->field, new Relation() );
$relationRelation = $bridgeEntity->searchFieldAnnotation($relation->foreignField, new Relation() );
if ($relationRelation === null) {
throw new \Exception("@Relation annotation not found for field `{$relation->foreignField}` in entity {$relation->bridge}");
}
$repository = $relationRelation->entity()->repository();
$bridgeAlias = uniqid("bridge_");