【问题标题】:Laravel 5: Returning Eloquent Model Object as an Ajax ResponseLaravel 5:将 Eloquent 模型对象作为 Ajax 响应返回
【发布时间】:2015-07-07 08:28:12
【问题描述】:

我正在尝试将 Eloquent 模型对象作为从搜索过程中获得的 Ajax 响应返回,并且我想将其传递给视图。

JS

$(document).ready( function() {

    $(".client_search_option").change(function(){

        var selectedClientTypeVal = "";
        var selectedSmsDecisionVal = "";

        var selectedClientType = $('input[type=radio][name=clientType]:checked');
        var selectedSmsDecision = $('input[type=radio][name=sms_decision]:checked');

        if (selectedClientType.length > 0) {
            selectedClientTypeVal = selectedClientType.val();
        }

        if (selectedSmsDecision.length > 0) {
            selectedSmsDecisionVal = selectedSmsDecision.val();
        }

        //alert(selectedClientTypeVal);
        //alert(selectedSmsDecisionVal);

        var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
        $.ajax({
            url: 'http://localhost/pages/clientSearchAjax',
            type: 'POST',
            data: {_token: CSRF_TOKEN, selectedClientTypeVal:selectedClientTypeVal,selectedSmsDecisionVal:selectedSmsDecisionVal},
            dataType: 'JSON',
            success: function (data) {
                console.log(data);
            },
            error:function(){
                alert("An error has occured !");
            }         
        });
    });
});

控制器

public function clientSearch(){
    $client_option = Input::get('selectedClientTypeVal');
    $sms_option = Input::get('selectedSmsDecisionVal');

    if($client_option == 'all' && $sms_option == 'all'){
        $ajax_clients = Client::with('clientType')->paginate(5);
    }else{
        $ajax_clients = Client::with('clientType')->where('clienttype_id', $client_option)->where('send_sms', $sms_option)->paginate(5);
    }

    return $ajax_clients->toJson();
}

我确定$ajax_client 对象不为空,我对其进行了测试,并且能够从数据库中获取数据,但是当我想将其传递给视图(或控制台)时,它会显示为undefined。如何将它传递给视图(或控制台)并获取模型列的值。任何帮助将不胜感激。

【问题讨论】:

    标签: php jquery ajax laravel laravel-5


    【解决方案1】:

    尝试替换

    return $ajax_clients->toJson();
    

    return $ajax_clients;
    

    Laravel 会自动将 Eloquent 对象转换为 JSON,此外它会将内容类型标头设置为 application/json,这是您在代码中不做的事情,并且可能会导致您描述的问题。

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 2016-01-21
      • 2012-02-06
      • 2023-03-14
      相关资源
      最近更新 更多