Laravel像查询问题

时间:2015-06-02 06:07:58

标签: php laravel-4 eloquent

$a = table::select('name')->where('name', 'LIKE', '%'.$term.'%')->get();

$ term保存用户输入的值。我的问题是,类似的不起作用,它返回表中的所有结果,而不管单词" $ term"。

如果我查询 -

$a = table::select('name')->where('name', 'LIKE', '%abc%')->get();

这个工作正常,但每次我传递Php变量时,它都无法正常工作。任何人都可以对此有所了解。

编辑 -

我发现了这个问题。我的$ term没有得到价值。这样一个愚蠢的问题。 感谢所有回复的人。

3 个答案:

答案 0 :(得分:1)

不确定是不是错了,它看起来很好,你也可以使用sprintf功能,如下所示

<script>
    function disableSelectedValues() {
        var cssOptions = [];
        $(".input_field.criteria_countries option").removeAttr("disabled");
        $.each($(".input_field.criteria_countries"), function(index, select) {
            cssOptions = [];
            var values = $(select).val();
            if (values) {
                for (var i = 0; i < values.length; i++) {
                    cssOptions.push("option[value=" + values[i] + "]");
                }
            }

            if (cssOptions.length) {
                console.log(".input_field.criteria_countries " + cssOptions.join(",.input_field.criteria_countries "));
                // disable all options with the selected values
                $(".input_field.criteria_countries " + cssOptions.join(",.input_field.criteria_countries ")).attr("disabled", true);

                // enable all options with the selected values for the current select
                $(select).find(cssOptions.join()).removeAttr("disabled");
            }
        });
    }

    function add_mitigator() {
        var option = '';
        var delete_pop_up = '';

        var tot_risk = $("#total_risk").val();
        var max_risk = $("#max_risk_id").val();
        var increased_risk = parseInt(parseInt(max_risk) + 1);
        var total_risk = parseInt(parseInt(tot_risk) + 1);

        for (i = 1; i < 10; i++) {
            option += "<option value=" + i + ">" + i + "</option>";
        }

        var risk_div = $("<div id='risk_" + increased_risk + "' style='margin-top: 5px;'></div>");

        var risk_drp_cont = $("<div id='risk_drp_cont" + increased_risk + "' style='float:left; width:302px; position:relative;'></div>");
        var risk_drop = $('<select />', {
            'id': 'risk_mitigator_offer_' + increased_risk,
                'name': 'risk_mitigator_offer[]',
                'class': 'input_field criteria_countries',
                'multiple': true,
                'style': 'width:202px;'
        });

        $(risk_drop).append(option);
        $(risk_drp_cont).append(risk_drop);

        $("#total_risk").val(total_risk);
        $("#max_risk_id").val(increased_risk);

        var risk_wgt_cont = $("<div id='risk_wgt_cont" + increased_risk + "' style='float:left;width:45px; position:relative; margin-left:5px;'></div>");
        var risk_weight = $('<input />', {
            'id': 'risk_weight_' + increased_risk,
                'name': 'risk_weight[]',
                'type': 'text',
                'class': 'input_field',
                'style': 'color:#777777; width: 40px; mergin-left: 30px;'
        });
        $(risk_wgt_cont).append(risk_weight);
        $(risk_weight).val('0');

        $(risk_div).append(risk_drp_cont).append(risk_wgt_cont);
        $(risk_drop).chosen({
            no_results_text: "Oops, nothing found!"
        }).change(function() {
            disableSelectedValues();
            $(".input_field.criteria_countries").trigger("chosen:updated");
        });

        var clear_div = $("<div style='clear: both;'></div>");
        $("#mitigator_container").append(risk_div).append(clear_div);
        $("#risk_mitigator_offer_" + increased_risk + "_chosen").css({
            "width": "100%",
                "height": "30px",
                "border-radius": "2px"
        });

        disableSelectedValues();
        $(".input_field.criteria_countries").trigger("chosen:updated");
    }
</script>
<input id="total_risk" name="total_risk" type="text" value="1" />
<input id="max_risk_id" name="max_risk_i" type="text" value="1" />
<a class="btn blue_button" href="javascript:void(0)" onclick="add_mitigator();">Add Mitigator</a>

<div id="mitigator_container" style="height:auto;">
    <div id="risk_1">
        <div id="risk_drp_cont_1" style="float:left;">
            <select id="risk_mitigator_offer_1" name="risk_mitigator_offer[]" class="input_field criteria_countries" style="width:302px;" multiple="multiple">
                <option value="All">All</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
            </select>
        </div>
        <div id="risk_wgt_cont_1" style="float:left;width:45px; position:relative; margin-left:5px;">
            <input id="risk_weight_1" name="risk_weight[]" class="input_field" type="text" value="0" style="color:#777777; width: 40px;" maxlength="3" />
        </div>
        <div id="risk_del_cont_1" style="float:left; width:20px; position:relative; margin-top:5px"> <a onclick="" href="javascript:void(0);" id="delete_mitigator"><span class="glyphicon glyphicon-trash trash"></span></a>

        </div>
    </div>
    <div style="clear:both"></div>
</div>

答案 1 :(得分:1)

即使你的SQL查询没有任何问题 我建议你查看pick

的值

你也可以试试这个:

$term

OR

$a = table::select("name")->where("name", "LIKE", "% $term %")->get();

答案 2 :(得分:1)

由于查询看起来正确。 这可能是有效的。

$a = table::select("name")->where("name", "LIKE", "% {$term} %")->get();