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,10 +4,7 @@ namespace Ulmus\Entity\Field;
class Date extends Datetime { class Date extends Datetime {
public function __toString() public string $format = "Y-m-d";
{
return $this->format("Y-m-d");
}
public function formatLocale(string $format) : string public function formatLocale(string $format) : string
{ {

View File

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

View File

@ -122,6 +122,17 @@ class EntityCollection extends \ArrayObject {
return $list; 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 { public function toArray(bool $includeRelations = false) : array {
$list = []; $list = [];

View File

@ -110,6 +110,10 @@ trait EntityTrait {
$bridgeRelation = $bridgeEntity->searchFieldAnnotation($relation->field, new Relation() ); $bridgeRelation = $bridgeEntity->searchFieldAnnotation($relation->field, new Relation() );
$relationRelation = $bridgeEntity->searchFieldAnnotation($relation->foreignField, 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(); $repository = $relationRelation->entity()->repository();
$bridgeAlias = uniqid("bridge_"); $bridgeAlias = uniqid("bridge_");