エンティティのアクションを生成するためにCRUDを使用しました。しかし、私は編集アクションを変更したいと思います。例えば、ユーザが状態1に対して「非アクティブ」を選択すると、エラーメッセージが表示され、そうでなければ、その行の更新に進むことができる。エンティティ内では、これらは変数state
,paypid
,startDate
,endDate
です。symfonyでエラーメッセージを表示する方法
これは現在、編集操作がどのように表示されるかです。
public function editAction($Paypid)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('comtwclagripayrollBundle:Payrollperiod')
->findBy(['paypid' => $Paypid, 'state' => 0]);
if (!$entity) {
$this->addFlash(
'notice',
'You cannot edit an inactive Payroll Period'
);
return $this->redirectToRoute('/payrollperiod');
}
$editForm = $this->createEditForm($entity);
$deleteForm = $this->createDeleteForm($Paypid);
return array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
);
}
And this method in the repository entity.
public function findByPaypidAndActiveState($Paypid)
{
return $this->getEntityManager()
->createQuery(
'SELECT p FROM comtwclagripayrollBundle:Payrollperiod
WHERE paypid = :paypid AND state = :state'
)
->setParameter('paypid', $Paypid)
->setParameter('state', 0)
->getResult();
}
エラーを正確にトリガーする原因を解消できますか?フォーム内の特定の値を選択する場合は、カスタム検証(http://symfony.com/doc/current/validation/custom_constraint.html参照)でこれを処理するのが最善ですが、ユーザーは特定の状態を持っています。これはおそらくセキュリティレイヤーによって最もよく処理されます。最後に、カスタムの「フラッシュメッセージ」をエラーとして作成し、場合によってはフォームの使用を許可しないことができます。詳細を達成したいものをさらに記述してください。 –
ユーザーが編集するために非アクティブ状態を選択すると、この状態を編集できないというエラーメッセージが表示されます。私はこのようなものを追加しました。 – Sue
あなたが持っているようなフラッシュはOK解決策ですよね?何がもっと必要ですか? –