Assert/Callback
検証に問題があります。これをコードのサンプルとして使用しましたが、Symfony は検証関数を無視します。これは私のエンティティコードの関連部分です
namespace Vendor\Bundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo; // gedmo annotations
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ExecutionContext;
/**
* @Assert\Callback(methods={"isValidFirma"})
* @ORM\Entity(repositoryClass="Vendor\Bundle\Entity\UserProfileRepository")
* @ORM\Table(name="user_profile")
*/
class UserProfile
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
//...
public function isValidFirma(ExecutionContext $context){
$context->addViolationAtSubPath('Firma', 'Company name must be present', array(), null);
// as of sf 2.3 use addViolationAt() instead [reference: https://github.com/propelorm/PropelBundle/issues/234 ]
}
//...
}
isValidFirma
呼び出されることはありません。アノテーションの代わりに validation.yml ファイルも試しましたが、成功しませんでした。変更のたびに約 50 回キャッシュをクリアしましたが、どちらも役に立ちませんでした。何が問題なのですか?