2017-03-02 10 views
1

私はこの質問をするのに多少恥ずかしいですが、ここにあります。私は私のtpl afterwordsでエコーする私のコントローラファイルで$ stock_status_id変数を定義しようとしています。私は'stock_status_id' => $result['status_stock_id'],として、コントローラファイルに設定されますが、それは私にOpencart 2.2.0在庫状況IDを定義

未定義のインデックス 'stock_status_id' エラー

を与えます。通常、これは私が定義した他の変数と同様に十分です。私はここで間違って何をしていますか? stock_status_idフィールドは、oc_productテーブルに存在します。私のコントローラファイル全体は以下の通りです:

<?php 
class ControllerModuleDobavljivi extends Controller { 
    public function index($setting) { 
     $this->load->language('module/dobavljivi'); 
     $data['logged'] = $this->customer->isLogged(); 
     $data['heading_title'] = $this->language->get('heading_title'); 
     $data['customer_group_id'] = $this->customer->getGroupId(); 

     $data['text_tax'] = $this->language->get('text_tax'); 

     $data['button_cart'] = $this->language->get('button_cart'); 
     $data['button_wishlist'] = $this->language->get('button_wishlist'); 
     $data['button_compare'] = $this->language->get('button_compare'); 

     $this->load->model('catalog/product'); 

     $this->load->model('tool/image'); 

     $data['products'] = array(); 

     $filter_data = array(
      'sort' => 'p.stock_status_id', 
      'order' => 'DESC', 
      'start' => 0, 
      'limit' => $setting['limit'] 
     ); 

     $results = $this->model_catalog_product->getProducts($filter_data); 

     if ($results) { 
      foreach ($results as $result) { 
       if ($result['image']) { 
        $image = $this->model_tool_image->resize($result['image'], $setting['width'], $setting['height']); 
       } else { 
        $image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']); 
       } 

       if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { 
        $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); 
        $wholesale = $this->currency->format($this->tax->calculate($result['wholesale'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); 
       } else { 
        $price = false; 
        $wholesale = false; 
       } 

       if ((float)$result['special']) { 
        $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); 
       } else { 
        $special = false; 
       } 

       if ($this->config->get('config_tax')) { 
        $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); 
       } else { 
        $tax = false; 
       } 

       if ($this->config->get('config_review_status')) { 
        $rating = $result['rating']; 
       } else { 
        $rating = false; 
       } 


       $data['products'][] = array(
        'product_id' => $result['product_id'], 
        'thumb'  => $image, 
        'name'  => $result['name'], 
        'stock_status_id' => $result['status_stock_id'], 
        'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..', 
        'price'  => $price, 
        'wholesale' => $wholesale, 
        'special'  => $special, 
        'tax'   => $tax, 
        'upc'  => $result['upc'], 
        'rating'  => $rating, 
        'href'  => $this->url->link('product/product', 'product_id=' . $result['product_id']) 
       ); 
      } 

      return $this->load->view('module/dobavljivi', $data); 

     } 
    } 

} 

ありがとうございます。

答えて

1

ご使用の製品モデルでstock_status_idgetProducts($data = array())にフェッチしていることを確認したら、予期した結果が返されます。

+0

あなたの助けをありがとう、私はこれを見落としたとは思わない! – Nancy

+0

ようこそ、私はそれがあなたを助けるならうれしいです。 –

1

製品データは$productsアレイとして入手可能です。 $products配列をループしてstock_status_idにアクセスしてください。あなたの配列のより明確な表示のためにvar_dump($products)を使用してください。これはあなたの配列を完全に説明します。

+0

こんにちは、ありがとうございました。 ["stock_status_id"] => NULLを示しています。しかし、それは本当ではない、すべての製品は、いくつかの株式状態が与えられている。 – Nancy

+0

あなたはあなたのモデルをチェックする必要があります、モデルは本当に同じインデックスを持つ株価を返すかどうかです。 – yogesh84

+0

私はあなたが何を意味するのか分かりません。なぜモデルリターンの株式価値ですか? – Nancy

関連する問題