首页 > 解决方案 > 轻松管理:添加复选框或按钮以显示 listAction

问题描述

我是 Symfony 的新手(SF 3)/

我正在尝试在简单的管理面板 listAction 中放置一个复选框或一个按钮,以在列表中显示连接或断开连接的用户。我想要做的是:我加载我的用户列表,只有连接的用户,当我点击复选框“显示所有用户”时,重新加载所有用户的列表,断开连接和连接。

我不知道我是否必须重写 listAction() 以及如何重写,或者只是将 createListQueryBuilder 与 ajax 调用一起使用。

我已经在我的控制器中尝试过这个

protected function createListQueryBuilder($entityClass, $sortDirection, $sortField = null, $dqlFilter = null)
    {
        $response = parent::createListQueryBuilder($entityClass, 'ASC', 'name', $dqlFilter);

        if ($this->request->query->get('connected') == 'all') {
            $response->Where('entity.connected in (0, 1)');
        } else {
            $response->Where('entity.connected = 0 ');
        }

        return $response;
    } 

在我的树枝上:

<div class="row">
   <div class="p-3 mb-2 bg-light text-dark">
       <input type="checkbox" name="checkbox" id="connected">Display all users</b><br>
   </div>
   <div class="clearfix"></div>

   {% block body_javascript %}
   {% if 'list' == app.request.get('action') %}
   <script type="text/javascript">
       $(function(){
           $('#connected').click(function(event) {
               $.ajax({
                   type: "POST",
                   url: '/?entity=user&action=list&connected=all',
                   data: {
                       'connected': 'all',
                        },
               success: function (data) {
                   alert('it worked');
               },
               error: function () {
                   alert('it broke');
               },
               complete: function () {
                   alert('it completed');
               }
           });
           });
       });

我有点迷路了,我哪儿也去不了。

你能指导我吗?

萨曼莎

标签: symfony

解决方案


推荐阅读