Non-static method should not be called statically

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
oleg_sm
Сообщения: 1
Зарегистрирован: 2021.10.07, 01:36

Non-static method should not be called statically

Сообщение oleg_sm »

Приветствую.

В проекте есть контроллер:

Код: Выделить всё

\frontend\controllers\ArticleController
В контролере есть метод:

Код: Выделить всё

public function getCategoryName($id){
	// ...
}
Один виджет обращается к контроллеру:

Код: Выделить всё

$category = ($condition)  ? 
 \frontend\controllers\ArticleController::getCategoryName($post->category)  :  
 'Полезные статьи';
Так вот, на сервере всё работает. Ошибок нет.
А на локалке(локальный веб-сервер на пк) появляется
ошибка:
Non-static method frontend\controllers\ArticleController::getCategoryName() should not be called statically

В чём ошибка?
Почему на сервере НЕТ ошибок, а на локалке ЕСТЬ ошибка.

Заранее спасибо за ответы.
marsden
Сообщения: 23
Зарегистрирован: 2019.11.25, 09:28

Re: Non-static method should not be called statically

Сообщение marsden »

почему на сервере работает - не скажу, может там есть static перед public в определении функции? Обращение идет как к статическому методу, о чем и ошибка говорит
бездумный копипаст приводит к безумным результатам
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Non-static method should not be called statically

Сообщение unknownby »

oleg_sm писал(а): 2021.10.07, 01:45 В чём ошибка?
Почему на сервере НЕТ ошибок, а на локалке ЕСТЬ ошибка.
Заранее спасибо за ответы.
Для начала скажите, почему метод getCategoryName находится в контроллере? Для чего он там?
Если логичное место для него в соответствующей модели Article
И уже в вашем виджете обращайтесь к модели, а не контроллеру.
Проверил у себя PHP 7.1.33, Yii2 2.0.40 всё вывело без ошибок, если через модель вызывать в представлении.
Ответить