【问题标题】:Trying to get property of non-object - laravel mongodb试图获取非对象的属性 - laravel mongodb
【发布时间】:2017-03-20 13:57:27
【问题描述】:

我在 mongodb 中使用 laravel,当我得到结果时,它显示“尝试获取非对象的属性”,我的代码有什么问题?

Controller query:
$fetch_qry = Auditproject::where('projectid','=',$request->proj_id)->where('siteengineerid','=',$request->cont_id)->where('sub_id','=',$loggedin)->first();
$audit_pid=$fetch_qry->_id;

My ajax:
 datastring="mytext="+displayed_tree1+"&mytext1="+selected_node1+"&proj_id="+pj_id+"&cont_id="+site_engineer_id+"&wbs_display="+res;

              $.ajax
              ({
                  type: "POST",
                  dataType : 'json',
                  async:true,
                  beforeSend: function (xhr) {
                      var token = $('meta[name="csrf_token"]').attr('content');
                      if (token) {
                          return xhr.setRequestHeader('X-CSRF-TOKEN', token);
                      }
                  },
                  url: "{{ URL::to('store_wbs_siteeng') }}",
                  data: datastring,
                  success:function(data){

                      return "Assigned Successfully";
                  },
                  failure: function() {alert("Error!");}
              }); 

【问题讨论】:

    标签: ajax mongodb laravel


    【解决方案1】:

    您应该始终检查您的查询是否返回一个对象或null

    $audit_pid = is_null($fetch_qry) ? $defaultId : $fetch_qry->_id;
    

    或者:

    if (is_null($fetch_qry)) {
        return response()->json(['Result is empty']);
    }
    

    当结果为null 时,仅表示DB 中现在有一行包含projectid = $request->proj_idsiteengineerid = $request->cont_idsub_id = $loggedin

    【讨论】:

    • 谢谢,这里的“$defaultId”是什么
    • @MuMuthukumar 这只是一个例子。你可以定义为0,然后用JS检查,如果是0,显示一些错误信息什么的。
    猜你喜欢
    • 2015-09-22
    • 2017-03-20
    • 2014-03-25
    • 2015-01-25
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多