所以我有一個帶有@Assert/Regex 的物體
/**
* @var string
*
* @ORM\Column(name="firstname", type="string", length=30, nullable=false, options={"comment"="input#text&[A-Za-z \-\'àa??éèê?????ù?ü???à???éèê?????ù?ü???]{2,30}@Prénom"})
* @Assert\NotBlank (
* message="Le champs [prénom] ne peut être vide",
* groups={"registration"}
* )
* @Assert\Regex (
* pattern="/^[A-Za-z \-\'àa??éèê?????ù?ü???à???éèê?????ù?ü???]{2,30}$/",
* message="Champs prénom : La saisie est invalide (min: 2, max: 30)")
*/
private $firstname;
/**
* @var string
*
* @ORM\Column(name="lastname", type="string", length=30, nullable=false, options={"comment"="input#text&[A-Za-z \-\'àa??éèê?????ù?ü???à???éèê?????ù?ü???]{2,30}@Nom"})
* @Assert\NotBlank (
* message="Le champs [nom] ne peut être vide",
* groups={"registration"}
* )
* @Assert\Regex (
* pattern="/^[A-Za-z \-\'àa??éèê?????ù?ü???à???éèê?????ù?ü???]{2,30}$/",
* message="Champs nom : La saisie est invalide (min: 2, max: 30)")
*/
private $lastname;
我有這樣的控制器(我特意洗掉了大部分代碼以使其清晰可見)
public function register(ValidatorInterface $validator, EntityManagerInterface $emi): Response
{
$newUsers = new Users();
// Setting the values
$newUsers
->setFirstname($request->get('firstname'))
->setLastname($request->get('lastname'));
$errorsUsers = $validator->validate($newUsers, null, ['registration']);
foreach ($errorsUsers as $v){
$msgErrors .= "\n- " . $v->getMessage() . ".";
}
}
在一切正常之前。現在 Assert\NotBlank 仍在作業,但 Assert\Regex 不是。就像,它甚至沒有比較它。
我試過 :
- php bin/console debug:validator 'App\Entity\Users'(一切看起來都很好)
- 作曲家轉儲自動加載(沒有變化)
- 改為放入我的正則運算式簡單部分,如“/\d/”(即使我輸入“Toto”,它也不會觸發并回傳違規)
我不知道為什么它不再作業了,這就是為什么我討厭 symfony 因為它甚至沒有給出錯誤或訊息。
如果有人遇到過這個問題并有解決方案,請告訴我。
提前致謝。
uj5u.com熱心網友回復:
好的,問題是我也沒有將組放入正則運算式中。
因此,對于添加到 var 的每個 Assert,您需要指定組。
我沒有想到,因為在檔案中它說如果您不指定組,則意味著它適用于所有內容。顯然不是。
謝謝醫生。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/326949.html
上一篇:在提交/驗證時,不會在錯誤訊息中使用Blazor表單中的InputNumber控制元件上的DisplayName設定
