- Fixed evalClosure() missing type which converted EntityField into string
This commit is contained in:
parent
8fff21ecb0
commit
c54de30069
@ -425,7 +425,7 @@ class Repository implements RepositoryInterface
|
||||
}
|
||||
|
||||
# @TODO Apply FILTER annotation to this too !
|
||||
foreach(array_filter((array) $fields, fn($e) => ! isset($this->joined[$e])) as $item) {
|
||||
foreach(array_filter((array) $fields, fn($e) => $e && ! isset($this->joined[$e]) ) as $item) {
|
||||
$this->joined[$item] = true;
|
||||
|
||||
$attribute = $this->entityResolver->searchFieldAnnotation($item, [ Join::class ]) ?:
|
||||
@ -480,7 +480,6 @@ class Repository implements RepositoryInterface
|
||||
$this->close();
|
||||
|
||||
$key = is_string($attribute->key) ? $this->entityClass::field($attribute->key) : $attribute->key;
|
||||
|
||||
$foreignKey = $this->evalClosure($attribute->foreignKey, $entity, $alias);
|
||||
|
||||
$this->join($isRelation ? "LEFT" : $attribute->type, $entity::resolveEntity()->tableName(), $key, $foreignKey, $alias, function($join) use ($item, $entity, $alias, $options) {
|
||||
@ -647,7 +646,7 @@ class Repository implements RepositoryInterface
|
||||
}
|
||||
|
||||
## AWAITING THE Closures in constant expression from PHP 8.5 !
|
||||
protected function evalClosure(string $content, string $entityClass, mixed $alias = self::DEFAULT_ALIAS) : mixed
|
||||
protected function evalClosure(\Stringable|string $content, string $entityClass, mixed $alias = self::DEFAULT_ALIAS) : mixed
|
||||
{
|
||||
if (is_string($content)) {
|
||||
if ( str_starts_with($content, 'fn(') ) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user