Symfony2中的按钮返回ID

时间:2015-08-05 14:01:00

标签: php symfony post get twig

这是我的PHP代码,当我点击“ myOnbutton ”按钮时,我试图获得“ ApartmentId ”。

if (isset($_POST['myOnbutton'])) {
            $providerstatss = $this->getDoctrine()
                    ->getRepository('myBundle:UserStats')
                    ->findByApartmentId($_POST);
        }

这是我在twig中按钮的代码---

  <form method="post" action="#">
        <div class="container">
            <h3>Content Management</h3>           
            <table class="table table-content">
<tbody>


         {% for userStats in userStats %}    
    <td>
            <button type="submit" class="btn btn-default btn-xs myOnbutton">ON</button> 
        </td> </tbody>
                </table></form>

这对我不起作用,我也不确定这个方法 - &gt; findByApartmentId($ _ POST); ,列名是“ ApartmentId ”。

所以当点击按钮时我需要实际获得“UserStats.ApartmentId”。

单击按钮后如何获取“Ap​​artmentId”?

有谁知道如何解决这个问题?提前致谢

1 个答案:

答案 0 :(得分:4)

您不使用Symfony2和Twig的强大功能

试试这个

Twig:

<div class="container">
    <h3>Content Management</h3>
    <table class="table table-content">
        <tbody>
        {% for user in userStats %}
            <td>
                <a href="{{ path('mybundle_apartment',{ apartmentId: user.ApartmentId }) }}" class="btn btn-default btn-xs myOnbutton">ON</a>
            </td>
        {% endfor %}
        </tbody>
    </table>
</div>

控制器

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
// ....
/**
* @Route("/apartment/{id}", name="mybundle_apartment")
*/
public function apartmentAction($id)
{
    if (null !== ($request->get('myOnbutton'))) {

        $providerstatss = $this->getDoctrine()
                          ->getRepository('myBundle:UserStats')
                          ->findBy(array('ApartmentId' => $id));
    }
}
// ....

或者您可以使用ParamConverter找到直接的实体,如:

use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
// ....
/**
* @Route("/apartment/{id}", name="bundlename_apartment")
* @ParamConverter("apartment", class="myBundle:UserStats")
*/
public function apartmentAction($apartment)
{
    var_dump($apartment);
    // ...
}