Trying to get property of non-object product detail in subcategories

十年热恋 提交于 2019-12-25 18:55:11

问题


I want to show one product of sub-categories selected, but there was an error message: Trying to get property of non-object in view product detail, please to be corrected if there are mistakes in the controller, model, and view.

where is my mistake?

View

<?php foreach ($categories as $key=>$value) { ?>
     <div class="col-sm-3">
     <h5><?php echo $categories[$key]->categoriesName; ?></h5>
         <?php if(count($categories[$key]->subs)>0) { ?>
             <?php foreach ($categories[$key]->subs as $k=>$v)  { ?>
                   <ul>
                      <li><a href="<?php echo base_url();?>member/detail/"><?php echo $v->productName; ?></a> </li>
                   </ul>
             <?php } ?>
             <?php } ?>
        </div>
  <?php } ?>
<div class="row" id="productMain">
    <div class="col-sm-4">
        <div id="mainImage"><img src="<?php echo base_url('upload/'.$details->photo);?>"
         alt="" class="img-responsive">div>
    </div>
    <div class="col-sm-4">
        <div class="box">
            <h1 class="text-center"><?php echo $details->productName;?></h1>
            <p class="price">
                <?php echo $details->price;?>
            </p>
        </div>
    </div>
</div>

Model

public function get_categories() {
    $query = $this->db->get('categories');
    $return = array();
    foreach ($query->result() as $category) {
        $return[$category->categoriesID] = $category;
        $return[$category->categoriesID]->subs = 
        $this->get_sub_categories($category->categoriesID);
    }
    return $return;
}

public function get_sub_categories($category_id) {
    $this->db->where('categoriesID', $category_id);
    $query = $this->db->get('product');
    return $query->result();
}

public function get_details($product_id) 
{
    $this->db->where("productID",$product_id);
    $query = $this->db->query("SELECT * FROM product");
    $row = $query->row();
    return $row;
}

Controller

public function detail($product_id){
     $data=array('title'   =>'Pasar Online | Detail Produk',
           'username'      => $this->session->userdata('username'),
           'categories'    => $this->categories_model->get_categories(),
           'details'       => $this->categories_model->get_details($product_id),
           'isi'           =>'member/detail');
     $this->load->view('template_home/wrapper',$data);
 }

print_r($categories)

Array ( [1] => stdClass Object 
( [categoriesID] => 1 [categoriesName] => Laptop [subs] => Array 
    ( [0] => stdClass Object ( [productID] => P0001 [categoriesID] => 1 [productName] => AAA ) 
        [1] => stdClass Object ( [productID] => P0002 [categoriesID] => 1 [productName] => BBB ) 
        [2] => stdClass Object ( [productID] => P0004 [categoriesID] => 1 [productName] => CCC ) ) ) 
[2] => stdClass Object ( [categoriesID] => 2 [categoriesName] => TV [subs] => Array
    ( [0] => stdClass Object ( [productID] => P0005 [categoriesID] => 2 [productName] => loren epsum ) ) ) 
[3] => stdClass Object ( [categoriesID] => 3 [categoriesName] => Handphnone [subs] => Array 
    ( [0] => stdClass Object ( [productID] => P0003 [categoriesID] => 3 [productName] => Manggoes ) 
        [1] => stdClass Object ( [productID] => P0006 [categoriesID] => 3 [productName] => Pinneapple ) ) ) )

print_r($details)

stdClass Object ( [productID] => P0001 [categoriesID] => 1 [productName] => AAA ) 1

the fault is in the loop $details


回答1:


Try like this...in view:

<?php foreach ($categories as $key=>$value) { ?>
      <div class="col-sm-3">
           <h5><?php echo $categories[$key]->categoriesName; ?></h5>
           <?php if(count($categories[$key]->subs)>0) { ?>
           <?php foreach ($categories[$key]->subs as $k=>$v)  { ?>
                 <ul>
                     <li><a href="<?php echo base_url();?>member/detail">
                         <?php echo $v->productName; ?></a></li>
                 </ul>
            <?php } ?>
            <?php } ?>
      </div>
 <?php } ?>

<div class="row" id="productMain">
    <div class="col-sm-4">
        <div id="mainImage"><img src="<?php echo base_url('upload/'.$details->photo);?>"
         alt="" class="img-responsive">div>
    </div>
<?php if(count($details)>0){
    <div class="col-sm-4">
        <div class="box">
            <h1 class="text-center"><?php echo $details->productName;?></h1>
            <p class="price">
                <?php echo $details->price;?>
            </p>
        </div>
    </div>
<?php } ?>
</div>

MODEL:

Send product_id in where condition for product details

  public function get_details($product_id) {
    $this->db->where("productID",$product_id);
    $query = $this->db->query("SELECT * FROM product");
    $row = $query->row();
    return $row;
}


来源:https://stackoverflow.com/questions/41779813/trying-to-get-property-of-non-object-product-detail-in-subcategories

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!