2017-07-11 15 views
-1

私は同じページでレスポンスを出力したいと思います。Symfonyの同じページでレスポンスを読み込む方法

return new Response('ERROR! You cannot edit an inactive Payroll Period');

が、私はそれが同じページになりたい:これは私が今持っているものです。

public function editAction($payrollperiodid) 
    { 
     $em = $this->getDoctrine()->getManager(); 

     //$entity = $em->getRepository('comtwclagripayrollBundle:Payrollperiod')->find($payrollperiodid); 
     $entity = $em->getRepository('comtwclagripayrollBundle:Payrollperiod')->findOneBy(['payrollperiodid' => $payrollperiodid, 'state' => 0]); 

     if (!$entity) { 

     return new Response('ERROR! You cannot edit an inactive Payroll Period'); 
     //return $this->redirect($this->generateUrl('payrollperiod')); 

     } 

     $editForm = $this->createEditForm($entity); 
     $deleteForm = $this->createDeleteForm($payrollperiodid); 

     return array(
      'entity'  => $entity, 
      'edit_form' => $editForm->createView(), 
      'delete_form' => $deleteForm->createView(), 
     ); 
    } 

ユーザーが編集するために非アクティブな状態を選択すると、エラーが発生します。しかし、私は出力が同じページにあることを望んでいません。あなたが使用できるアクションの引数で

+0

全く不明で、いくつかのコードを投稿し、私が編集したあなたが望むより良い[flashメッセージ](http://symfony.com/doc/current/controller.html#flash-messages) –

+1

ルックを説明質問し、さらに説明する。私はフラッシュメッセージを試みたが、それは私がユーザーのために望む方法ではない。そのようなメッセージを出力することは可能ですか? – pbenard

+0

で – Sue

答えて

0

$this->addFlash()メソッドを使用します。

public function editAction($payrollperiodid) 
    { 
     $em = $this->getDoctrine()->getManager(); 

     //$entity = $em->getRepository('comtwclagripayrollBundle:Payrollperiod')->find($payrollperiodid); 
     $entity = $em->getRepository('comtwclagripayrollBundle:Payrollperiod')->findOneBy(['payrollperiodid' => $payrollperiodid, 'state' => 0]); 

     if (!$entity) { 

     $this->addFlash('error', 'You cannot edit an inactive Payroll Period'); 
     return $this->redirect($this->generateUrl('payrollperiod')); 

     } 

     $editForm = $this->createEditForm($entity); 
     $deleteForm = $this->createDeleteForm($payrollperiodid); 

     return array(
      'entity'  => $entity, 
      'edit_form' => $editForm->createView(), 
      'delete_form' => $deleteForm->createView(), 
     ); 
    } 
+0

彼の質問の別のものでこの影響への回答をしましたが、明らかにセッションを使用していません..... –

+0

私はadd flashを使うと、給与計算期間のページが非アクティブな状態が選択されている場合、アクティブな状態を選択した場合、そこにエラーが表示されます。 – Sue

+0

mcek symfonyに関する別の質問を私に教えることが可能です – Sue

-2

public function editAction(Request $request, $payrollperiodid) 

use文を追加してください:

use Symfony\Component\HttpFoundation\Request; 

、その後、あなたはこれを行うことができます:

$request->getSession()->getFlashBag()->add('success',' 
    The message you want to be displayed'); 
    return $this->redirectToRoute('NameOfTheRoute', array('parameterName' => 'parameterValue')); 

をメッセージを得るために小枝であなたはできる:

{% for flashMessage in app.session.flashbag.get('success') %} 
     <div class="alert alert-success" role="alert"> 
      {{ flashMessage }} 
     </div> 
    {% endfor %} 

これはあなたのためのトリックを行うことができます!

+0

助けてくれてありがとう – Sue

+0

この作品はありましたか?これがトリックであれば私の答えを検証し、あなたが仲間を助けることをうれしく思います。 –

+0

セバスチャンはsymfonyに関する質問に私を助けることができます – Sue

関連する問題