我想之前得到從產品標識和產品後,目前我正在等我可以從這些產品的信息,並作出下一個產品和以前的產品按鈕獲取從產品ID前後
我在Opencart的版本工作2.3.0.2
這是所有在product.php控制器所有這一切都是圍繞線277,在數據[「PRODUCT_ID」]我說我的代碼
$data['product_id'] = (int)$this->request->get['product_id'];
$results = $this->model_catalog_product->getProduct($data['product_id']);
foreach ($results as $result) {
if ($result['product_id'] < $data['product_id']){
$data['product_before_id'] = $result['product_id'];
} else {
$data['product_before_id'] = 0;
}
if ($result['product_id'] > $data['product_id']){
$data['product_after_id'] = $result['product_id'];
} else {
$data['product_after_id'] = 0;
}
}
我試圖得到它,但得到了非法的字符串偏移量
改變的答案
$next_product = $this->model_catalog_product->getProduct($product_id + 1);
while($next_product === false){
$product_id = $product_id + 1;
$next_product = $this->model_catalog_product->getProduct($product_id);
}
$previous_product = $this->model_catalog_product->getProduct($product_id - 1);
while($previous_product === false){
$product_id = $product_id - 1;
$previous_product = $this->model_catalog_product->getProduct($product_id);
}
if ($previous_product !== false) {
if ($previous_product['product_id'] == $data['product_id']) {
$data['product_before_id'] = 0;
} else {
$data['product_before_id'] = $previous_product['product_id'];
}
} else {
$data['product_before_id'] = 0;
}
if ($next_product !== false) {
if ($next_product['product_id'] == $data['product_id']) {
$data['product_after_id'] = 0;
} else {
$data['product_after_id'] = $next_product['product_id'];
}
} else {
$data['product_after_id'] = 0;
}
將當前ID加1或減1,並使用get查詢來檢查id是否存在保持遞減或遞增,直到找到有效的id爲止。您可以發佈模型查詢以便更好地理解您的查詢 –
請提供更多信息,例如您正在處理的文件。基於您提供的少量信息,我的猜測是'$ data ['product_id']'不包含在將其傳遞給模型函數或$ result ['product_id']'不存在時存在。如果PHP中的關聯數組沒有帶指定字符串鍵的元素,則會發生非法字符串偏移 –
我使用更多信息編輯它 – souptical