簡體   English   中英

以Json格式導出兩種語言Opencart的產品

[英]Export products in Json format in two languages Opencart

我在控制器中創建了這個以 json 格式導出產品,但我只得到一種語言,我需要兩種語言在這種情況下我能做什么我需要幫助!

    <?php
         class ControllerApiProduct extends Controller
     {
      public function index()
    {
    $this->load->language('api/cart');
    $this->load->model('catalog/product');
    $this->load->model('tool/image');
    $json = array();
    $json['products'] = array();
    $filter_data = array();
 
    $results = $this->model_catalog_product->getProducts($filter_data);
    foreach ($results as $result) {
       
        $data['products'][] = array(
            'name' => $result['name'],
           
        );
    }
    $json['products'] = $data['products'];
    $this->response->addHeader('Content-Type: application/json');
    $this->response->setOutput(json_encode($json));
   }
}

方法一
在當前 foreach 之后設置語言 ID 並再次獲取數據。 $this->config->set('config_language_id', LANGUAGE_ID_HERE) 確保您之后重置它。


方法二
更新模型方法會更有效,因此您可以在文件catalog/model/catalog/product.php中傳遞一組語言 ID getProducts()

例子

public function getProducts(array $data = [], array $language_ids = []): array {

並將查詢更改為類似這樣的內容,它將獲取與給定語言 ID 數組匹配的記錄

WHERE pd.`language_id` = '" . (int)$this->config->get('config_language_id') . "' AND p.`status` = '1' AND p.`date_available` <= NOW() AND p2s.`store_id` = '" . (int)$this->config->get('config_store_id') . "'";

WHERE pd.`language_id` IN (" . !empty($language_ids) ? implode(',', $language_ids) : (int) $this->config->get('config_language_id') . ") AND p.`status` = '1' AND p.`date_available` <= NOW() AND p2s.`store_id` = '" . (int)$this->config->get('config_store_id') . "'";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM