dongzhan3937 2014-05-28 06:04
浏览 39
已采纳

CodeIgniter:如何修复两个查询集成时“尝试获取非对象属性”错误

    $this->db->select('*');
    $this->db->from('details');

    if ($country != '')
        {
        $condition .= "(details.service_location IN ('" . $country . "') OR details.country in ('" . $country . "'))";

        }

    $this->db->where($condition);
    $this->db->where('price_range_from >=', $min_price);
    $this->db->where('price_range_to <=', $max_price);
    $this->db->order_by("details.created_on", "asc");
    $query = $this->db->get();

    $results = $query->result();

    foreach ($results as $result)
        {
        $this->db->select('title as image');
        $this->db->from('attachments');
        $this->db->where('parent', $result-id);
        $this->db->where('type', 'job');
        $image = $this->db->get()->row();
        $result->image = $image->image;   // Line No :55

        $this->db->select('sum(feedbacks.rate)/count(feedbacks.rate) as average');
        $this->db->from('feedbacks');
        $this->db->where('parent_id', $result->id);
        $this->db->where('type', 'job');
        $average = $this->db->get()->row();
        $result->average = $average->average;
        $result = (object) $result;
        }

    return $results;
    }

if attachment table doesn't have records it shows an error

Severity: Notice

Message: Trying to get property of non-object

Filename: models/details_model.php

Line Number: 55

$result->image = $image->image;

  • 写回答

2条回答 默认 最新

  • dongmeixi5311 2014-05-28 06:47
    关注
    foreach ($results as $result)
            {
            $this->db->select('title as image');
            $this->db->from('attachments');
            $this->db->where('parent', $result-id);
            $this->db->where('type', 'job');
            $image = $this->db->get()->row();
            if($image){
               $result->image = $image->image;
            }
            $this->db->select('sum(feedbacks.rate)/count(feedbacks.rate) as average');
            $this->db->from('feedbacks');
            $this->db->where('parent_id', $result->id);
            $this->db->where('type', 'job');
            $average = $this->db->get()->row();
            if($average){
               $result->average = $average->average;
            }
            $result = (object) $result;
            }
    
        return $results;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度