0
私の目標は、フィールドに対してuniqueEntityの制約を持つエンティティを検証することです。このフィールドは、ライフサイクルコールバックPrePersistを使用して連結された2つのマッピングされていないフィールドで構成されます。問題は、検証が行われず、システムがデータをデータベースに挿入することを許可しないということです。symfony - マッピングされていないフィールドのユニークなエンティティの制約
/**
* Recipe
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\RecipeRepository")
* @ORM\HasLifecycleCallbacks()
* @UniqueEntity(
* ignoreNull = false,
* fields={"amount"},
* message="Not valid"
*)
*/
class Recipe
{...}
...
/**
* @ORM\PrePersist()
*/
public function preSave()
{
$this->amount = $this->getAmountInteger() . '.' . $this->getAmountDecimal();
}
属性の上にある '@ORM \ Column(name =" amount "、type =" string "、length = 255、unique = true)'はどうでしょうか?_(UniqueEntity制約を維持します)_? – Delphine
スキーマツール専用の 'unique = true'はありませんか? –
@Delphine、フィールドにunique = true制約が設定されているため、フォームを正しく検証できず、行の一意性を処理できません。実際には、チェックは、フォームの有効なメソッドではなくフラッシュで行われます。 –