Валидатор выражения не работает. Я следую Symfony2 документации, например: http://symfony.com/doc/2.7/reference/constraints/Expression.htmlSymfony2, валидатор выражения не работает
В моем упрощенном случае C: \ Bitnami \ wampstack-5.5.30-0 \ sym_prog \ proj3_27 \ приложение \ Config \ validation.yml
MeetingBundle]Entity\SearchLtk:
constraints:
- Expression:
expression: "this.keywL<2"
message: "Input more search words"
C: \ Bitnami \ wampstack-5.5.30-0 \ sym_prog \ proj3_27 \ приложение \ Config \ config.yml
framework:
validation: { enabled: true, enable_annotations: true }
C: \ Bitnami \ wampstack-5.5.30-0 \ sym_prog \ proj3_27 \ SRC \ MeetingBundle \ Entity \ SearchLtk.php
/**
* SearchLtk
*
* @ORM\Table(name="search_ltk",indexes={@ORM\Index(columns={"zip"}, flags={"fulltext"})})
* @ORM\Entity(repositoryClass="MeetingBundle\Repository\SearchLocRepository")
*/
class SearchLtk
{....
/**
* @var string
*
* @ORM\Column(name="keyw", type="string", nullable = true)
*/
private $keyw;
...
/**
*
* @return integer
*/
public function keywL($keyw)
{
$kArr = preg_split("/[;,\.]+/", $keyw);
foreach ($kArr as $key=>$item) {
$item=trim($item);
// the string becomes "", but length is 1, count returns 1
//but empty returns correctly
if(count($item) == 0 or (empty($item))){
unset($kArr[$key]);
}
}
return count($kArr);
}
...
Что происходит и настоящее время драйвера, что вы ожидаете? –
Если вы хотите, чтобы выражение для выполнения публичной функции 'keywL', возможно, понадобилось использовать круглые скобки. Значение '' this.keywL() <2 "' вместо '' this.keywL <2 "', затем внутри функции keywL, обратитесь к значению, используя $ this-> keyw. – Stphane