- Refractored Date/time fields

- Added an implode function on EntityCollection
This commit is contained in:
Dave Mc Nicoll 2020-10-06 11:35:54 -04:00
parent 538af38769
commit 07ba3f611b
4 changed files with 18 additions and 9 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

@ -107,4 +107,15 @@ 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);
}
} }

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_");