- 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,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

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

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