2013-08-23 2 views
0

У меня есть следующие функции помощника в system/helper/wholesaler.php:

<?php 
function is_wholesaler() { 
    return $this->customer->getCustomerGroupId() != 1 ? TRUE : FALSE; 
} 
?> 

Я загрузил помощник в system/startup.php

Проблема в том, что, когда я пытаюсь использовать функцию я получаю фатальную ошибку «Фатальная ошибка: Использование $ это когда не в контексте объекта ". Есть ли способ использовать $ this в помощнике?

Одним из вариантов альтернативы можно было бы направить $ это в качестве аргумента в is_wholesaler() или добавить функцию в library/customer.php и вызвать его с $this->customer->is_wholesaler() в моих OpenCart просмотреть шаблон файлов.

ответ

0

Попытка создать object для Customer, и вы можете использовать это object как ссылка для этого class

$h = new Customer(); 
function is_wholesaler() { 
    return $h->getCustomerGroupId() != 1 ? TRUE : FALSE; 
} 

Или вы можете также создать ссылки как

return Customer::getCustomerGroupId() != 1 ? TRUE : FALSE; 
+0

Фатальная ошибка: Вызов неопределенной функции get_instance() – Cris

+0

Тогда попробуйте мой выбор один раз – Gautam3164

+0

Спасибо, но он не работает ... Неизвестно: Нестатический метод Клиент :: getCustomerGroupId() не следует называть статически в – Cris

1

$this относится к экземпляру объекта (класса), вы не можете использовать его в отдельности, вы можете pu т функция is_wholesaler в класс, как:

class Helper{ 
    private $customer; 

    public function __construct($customer){ 
     $this->customer = $customer; 
    } 

    function is_wholesaler() { 
     return $this->customer->getCustomerGroupId() != 1 ? TRUE : FALSE; 
    } 
} 

$customer = new Customer(); //I suppose you have a class named Customer in library/customer.php 
$helper = new Helper($customer); 
$is_wholesaler = $heler->is_wholesaler(); 

или просто изменить функцию is_wholesaler ему себя следующим образом:

function is_wholesaler() { 
    $customer = new Customer(); //still suppose you have a class named Customer 
    return $customer->getCustomerGroupId() != 1 ? TRUE : FALSE; 
} 
Смежные вопросы