[英]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.