额外使用加入Doctrine查询语言的地方

时间:2015-12-14 03:59:47

标签: php symfony doctrine-orm

我的Entity Repository类中有以下代码:

 $qb
        ->select('d')
        ->addOrderBy('d.dtrDate', 'DESC')
        ->where($qb->expr()->isNotNull('d.deletedAt'))
        ->leftJoin('d.user', 'u')
        ->where('u.id = :user_id')
        ->setParameter('user_id', $user->getId());

所以基本上,我不想选择一个实体,其中deletedAt属性不为null。但它给我一个这样的查询:

>

 SELECT 
  d0_.id AS id_0, 
  d0_.dtr_date AS dtr_date_1, 
  d0_.clock_in AS clock_in_2, 
  d0_.clock_out AS clock_out_3, 
  d0_.total_time AS total_time_4, 
  d0_.memo AS memo_5, 
  d0_.last_update_IP AS last_update_IP_6, 
  d0_.created_at AS created_at_7, 
  d0_.updated_at AS updated_at_8, 
  d0_.deleted_at AS deleted_at_9, 
  d0_.user_id AS user_id_10 
FROM 
  daily_time_record d0_ 
  LEFT JOIN user u1_ ON d0_.user_id = u1_.id 
WHERE 
  u1_.id = ? 
ORDER BY 
  d0_.dtr_date DESC

你可以看到我的第一个没有被叫的地方。那我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

您应阅读文档,或阅读ORM源以了解实际情况如何。简而言之,你的问题的答案是:

<div class="container">
    <form class="form-horizontal" role="form" action="next.php" method="post">



<!--        http://www.sanwebe.com/2013/03/addremove-input-fields-dynamically-with-jquery-->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <div class="input_fields_wrap">
            <button class="add_field_button">Add Author</button>

            <div id="commonPart" class="commonPart">
                <br>
            <div><input type="text" name="myAuthorText[]" placeholder="Auth name"></div>

            <button class="add_sub_field_button">Add Author Books</button>
            <div><input type="text" class="bookname" name="myBooksText[]" placeholder="Book name"></div>

             </div>

        </div>
        <input name="submit" class="submit" value="Enviar" type="submit">
<!--        http://www.sanwebe.com/2013/03/addremove-input-fields-dynamically-with-jquery-->

    </form>
</div>   


    <script src="../js/jquery-2.1.4.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
    <script src="../js/jqBootstrapValidation.js"></script>
    <SCRIPT language="javascript">

        //http://www.sanwebe.com/2013/03/addremove-input-fields-dynamically-with-jquery


    $(document).ready(function() {
        var max_fields      = 10; //maximum input boxes allowed
        var wrapper         = $(".input_fields_wrap"); //Fields wrapper
        var commonPart      = $("#commonPart"); 
        var add_button      = $(".add_field_button"); //Add button ID
        var add_subButton   = $(".add_sub_field_button"); //Add sub button ID

        var x = 1; //initlal text box count
        $(add_button).click(function(e){ //on add input button click
            e.preventDefault();
            if(x < max_fields){ //max input box allowed
                var htmlToAdd = commonPart.clone().attr("id","commonPart_"+x);
                htmlToAdd.find(".addedDiv").remove();
                $(wrapper).append(htmlToAdd); //add input box
              x++; //text box increment
            }
        });

        $(document).on("click",".add_sub_field_button",function(e){ //on add input button click
            e.preventDefault();
            if(x < max_fields){ //max input box allowed
                x++; //text box increment
                $(this).closest(".commonPart").append('<div class="addedDiv"><input type="text" class="bookname" name="myBooksText[]" placeholder="Book name"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
            }
        });
        $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
            e.preventDefault(); $(this).parent('div').remove(); x--;
        })
    });

    //http://www.sanwebe.com/2013/03/addremove-input-fields-dynamically-with-jquery
    </SCRIPT>