26 lines
621 B
PHP
26 lines
621 B
PHP
<?php
|
|
|
|
namespace Ulmus\Attribute;
|
|
|
|
use Ulmus\Common\EntityField;
|
|
use Ulmus\Repository;
|
|
|
|
class Attribute
|
|
{
|
|
public static function handleArrayField(null|\Stringable|string|array $field, null|string|bool $alias = Repository::DEFAULT_ALIAS, string $separator = ', ') : mixed
|
|
{
|
|
if ( is_array($field) ) {
|
|
$class = array_shift($field);
|
|
$field[1] ??= $alias;
|
|
|
|
if (is_array($field[0])) {
|
|
$field[] = $separator;
|
|
return $class::fields(...$field);
|
|
}
|
|
|
|
return $class::field(...$field);
|
|
}
|
|
|
|
return $field;
|
|
}
|
|
} |