Example #1
0
 /**
  * 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);
 }