Esempio n. 1
0
 /**
  * Adds the singular filterByCol method for an Array column.
  * @param string &$script The script will be modified in this method.
  * @param Column $col
  */
 protected function addFilterByArrayCol(&$script, Column $col)
 {
     $colPhpName = $col->getPhpName();
     $singularPhpName = $col->getPhpSingularName();
     $colName = $col->getName();
     $variableName = $col->getCamelCaseName();
     $qualifiedName = $this->getColumnConstant($col);
     $script .= "\n    /**\n     * Filter the query on the {$colName} column\n     * @param     mixed \${$variableName} The value to use as filter\n     * @param     string \$comparison Operator to use for the column comparison, defaults to Criteria::CONTAINS_ALL\n     *\n     * @return \$this|" . $this->getQueryClassName() . " The current query, for fluid interface\n     */\n    public function filterBy{$singularPhpName}(\${$variableName} = null, \$comparison = null)\n    {\n        if (null === \$comparison || \$comparison == Criteria::CONTAINS_ALL) {\n            if (is_scalar(\${$variableName})) {\n                \${$variableName} = '%| ' . \${$variableName} . ' |%';\n                \$comparison = Criteria::LIKE;\n            }\n        } elseif (\$comparison == Criteria::CONTAINS_NONE) {\n            \${$variableName} = '%| ' . \${$variableName} . ' |%';\n            \$comparison = Criteria::NOT_LIKE;\n            \$key = \$this->getAliasedColName({$qualifiedName});\n            if (\$this->containsKey(\$key)) {\n                \$this->addAnd(\$key, \${$variableName}, \$comparison);\n            } else {\n                \$this->addAnd(\$key, \${$variableName}, \$comparison);\n            }\n            \$this->addOr(\$key, null, Criteria::ISNULL);\n\n            return \$this;\n        }\n\n        return \$this->addUsingAlias({$qualifiedName}, \${$variableName}, \$comparison);\n    }\n";
 }
Esempio n. 2
0
 /**
  * Adds the singular filterByCol method for an Array column.
  *
  * @param string &$script The script will be modified in this method.
  * @param Column $col
  */
 protected function addFilterBySetCol(&$script, Column $col)
 {
     $colPhpName = $col->getPhpName();
     $singularPhpName = $col->getPhpSingularName();
     $colName = $col->getName();
     $variableName = $col->getCamelCaseName();
     $script .= "\n    /**\n     * Filter the query on the {$colName} column\n     * @param     mixed \${$variableName} The value to use as filter\n     * @param     string \$comparison Operator to use for the column comparison, defaults to Criteria::CONTAINS_ALL\n     *\n     * @return \$this|" . $this->getQueryClassName() . " The current query, for fluid interface\n     */\n    public function filterBy{$singularPhpName}(\${$variableName} = null, \$comparison = null)\n    {\n        return \$this->filterBy{$colPhpName}(\${$variableName}, \$comparison);\n    }\n";
 }
Esempio n. 3
0
 /**
  * Adds a remove method for an array column.
  * @param string &$script The script will be modified in this method.
  * @param Column $col     The current column.
  */
 protected function addRemoveArrayElement(&$script, Column $col)
 {
     $clo = $col->getLowercasedName();
     $cfc = $col->getPhpName();
     $visibility = $col->getAccessorVisibility();
     $singularPhpName = $col->getPhpSingularName();
     $columnType = $col->getType() === PropelTypes::PHP_ARRAY ? 'array' : 'set';
     $script .= "\n    /**\n     * Removes a value from the [{$clo}] {$columnType} column value.\n     * @param  mixed \$value\n     * " . $col->getDescription();
     if ($col->isLazyLoad()) {
         $script .= "\n     * @param  ConnectionInterface \$con An optional ConnectionInterface connection to use for fetching this lazy-loaded column.";
     }
     $script .= "\n     * @return \$this|" . $this->getObjectClassName(true) . " The current object (for fluent API support)\n     */\n    {$visibility} function remove{$singularPhpName}(\$value";
     if ($col->isLazyLoad()) {
         $script .= ", ConnectionInterface \$con = null";
     }
     // we want to reindex the array, so array_ functions are not the best choice
     $script .= ")\n    {\n        \$targetArray = array();\n        foreach (\$this->get{$cfc}(";
     if ($col->isLazyLoad()) {
         $script .= "\$con";
     }
     $script .= ") as \$element) {\n            if (\$element != \$value) {\n                \$targetArray []= \$element;\n            }\n        }\n        \$this->set{$cfc}(\$targetArray);\n\n        return \$this;\n    } // remove{$singularPhpName}()\n";
 }
 public function testPhpSingularName()
 {
     $column = new Column();
     $column->setPhpName('Aliases');
     $this->assertEquals($column->getPhpName(), 'Aliases');
     $this->assertEquals($column->getPhpSingularName(), 'Aliase');
     $column = new Column();
     $column->setPhpName('Aliases');
     $column->setPhpSingularName('Alias');
     $this->assertEquals($column->getPhpName(), 'Aliases');
     $this->assertEquals($column->getPhpSingularName(), 'Alias');
 }