0

当我选择用户时,我正在尝试显示合同列表。所以我做了我的查询

    /**
 * @param $firstname
 * @param $lastname
 * @return mixed
 * @throws DBALException
 */
public function getListPerUser($firstname, $lastname)
{
    $em = $this->getEntityManager();

    $query = '
        SELECT clientname 
        FROM contact_end_client c
        INNER JOIN client_contract cli ON cli.clientname_id = c.id AND  cli.active
        INNER JOIN user u ON u.id = cli.user_id
        WHERE u.firstname = :firstname AND u.lastname = :lastname AND cli.active = 1
        ';

    $stmt = $em->getConnection()->prepare($query);
    $param = ['firstname' => $firstname, 'lastname' => $lastname];
    $stmt->execute($param);
    return $stmt->fetchAll();
}

然后在我的控制器中:

    /**
 * @Route(path="/newadmin/invoice/showAllContract", name="showAllContract")
 * @param Request $request
 * @return JsonResponse
 */
public function viewContract(Request $request)
{
    $entityManager = $this->getDoctrine()->getManager();
    $template_id = $request->get('user');
    //dump($template_id);
    $getName = explode(" ", $template_id);
    $firstname = $getName[0];
    $lastname = $getName[1];
    $templateRepository = $entityManager->getRepository(ClientContract::class)->getListPerUser($firstname, $lastname);
    return new JsonResponse($templateRepository);
}

如何给我一个json。 在此处输入图像描述 所以我认为我必须对其进行迭代?但我不知道如何在我的树枝上显示它。

{{ form_start(createInvoice) }}
            {{ form_row(createInvoice.user) }}
            {# my contract #}
            {{ form_end(createInvoice) }}
        </div>
    </div>
</div>
<script>
    $(document).ready(function () {
        $('#invoice_manual_creation_user').change(function (message) {
            $('#hidden').show();

            let userName = $('#invoice_manual_creation_user option:selected').text();
            console.log(userName)

                $.get("{{ path('showAllContract') }}", {'user': userName})

        });
    });
</script>
4

1 回答 1

0
{{ form_start(createInvoice) }}
            {{ form_row(createInvoice.user) }}
           <ul id="my-contract-list">
               
           </ul> 
            {{ form_end(createInvoice) }}
        </div>
    </div>
</div>
<script>
    $(document).ready(function () {
        $('#invoice_manual_creation_user').change(function (message) {
            $('#hidden').show();

            let userName = $('#invoice_manual_creation_user option:selected').text();
            console.log(userName);
            
            const url = "{{ path('showAllContract',{'user': "+userName+"}) }}";

                $.get(url,function(data) {
                        var myContractListUl = $("#my-contract-list");

                        // if data is empty
                        if (data.length === 0) { 
            
                            var li = $('<li></li>').text('Contracts not found');
                            myContractListUl.append(li);
                            return;
                        }
                        // we loop data and for each item we create li and append it to ul (my-contract-list)
                        $.each(data, function(index, item) {
                            var li = $('<li></li>').text(item.clinentName);
                            myContractListUl.append(li);
                        });
                });

        });
    });
</script>
于 2020-08-14T14:05:22.813 回答