Validation Symfony2,表达式验证程序不工作
表达式验证程序不工作。 下面是Symfony2文档示例: 在我的简化案例中, C:\Bitnami\wampstack-5.5.30-0\sym\u prog\proj3\u 27\app\config\validation.ymlValidation Symfony2,表达式验证程序不工作,validation,symfony,Validation,Symfony,表达式验证程序不工作。 下面是Symfony2文档示例: 在我的简化案例中, C:\Bitnami\wampstack-5.5.30-0\sym\u prog\proj3\u 27\app\config\validation.yml MeetingBundle]Entity\SearchLtk: constraints: - Expression: expression: "this.keywL<2"
MeetingBundle]Entity\SearchLtk:
constraints:
- Expression:
expression: "this.keywL<2"
message: "Input more search words"
C:\Bitnami\wampstack-5.5.30-0\sym\u prog\proj3\u 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 );
}
...
1) 实体中不应该有方法
2) 签出此函数当前正在发生的事情以及您期望的是什么?如果希望表达式执行
keywL
公共函数,可能必须使用括号。意思是“this.keywL()<2”
而不是”this.keywL
/**
* 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 );
}
...