我已經使用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),但如果您希望整個操作在用戶有一個特定的狀態,這可能是最好的安全層處理。最後,您總是可以創建自定義的「Flash消息」作爲錯誤,並且在某些情況下不允許使用該表單。請詳細描述您想要實現的內容。 –
當用戶選擇一個非活動狀態進行編輯時,應該給他們一個錯誤信息,表明這個狀態不能被編輯。我已經添加了這樣的東西。 – Sue
像你這樣的閃光燈是一個很好的解決方案,對吧?你還需要什麼? –