/** * Create Generate alias callback. * * @param string $tableName The table name. * @param array|string $valueColumn The value columns. * @param string $aliasColumn The alias column. * @param null $strategy Alias generator strategy flags. * * @return GenerateAliasCallback */ public static function createGenerateAliasCallback($tableName, $valueColumn, $aliasColumn = 'alias', $strategy = null) { $database = static::getService('database.connection'); $generator = new AliasGenerator($database, $tableName, $aliasColumn, (array) $valueColumn); if ($strategy) { $generator->setStrategy($strategy); } return new GenerateAliasCallback($generator); }
/** * Generate the alias value. * * @param mixed $value The current value. * @param \DataContainer $dataContainer The data container driver. * * @return mixed|null|string */ public function __invoke($value, $dataContainer) { return $this->generator->generate($dataContainer->activeRecord, $value); }