Вызов метода экшена.

#1 28 августа 2021 в 11:59

Привет. Вопрос кодерам. Как вызвать метод экшена контроллера А из экшена контроллера В?

Почему то так не работает. Пишет, что нет такого класса

  1. class actionContentA extends cmcAction{public function foo(){}}
  2.  
  3. class actionUsersB extends cmcAction{$a = new actionContentA; $a->foo();}
#2 28 августа 2021 в 12:15

lORA ныряй к нам в песочницу — там расскажем покажем t.me/joinchat/E-N1uja-nXgzYzZi

#3 28 августа 2021 в 12:30

Уже понял. В методе run() не работает. Создал другой и вызвал из него. Спасибо.

#4 28 августа 2021 в 12:35

 Lora, сюда смотрели?

#5 28 августа 2021 в 12:38

 IamB, смотрел, но это не к классу контроллера относится, а к классу экшена.

Добавлено спустя 1 минуту

 Алексей, Не пользуюсь телеграмом.Спасибо.

#6 28 августа 2021 в 13:31

А так?

  1. $this->controller_ИМЯ_КОНТРОЛЛЕРА->foo();

Или 

  1. $controller = cmsCore::getController('ИМЯ_КОНТРОЛЛЕРА');
  2.  
  3. $controller->foo();
#7 28 августа 2021 в 15:28

В методе run() не работает

Lora

экшн можно вызвать из другого места. Посмотрите тут github.com/instantsoft/icms2/blob/master/system/controllers/auth/hooks/frontpage.php

#8 28 августа 2021 в 19:25

экшн можно вызвать из другого места. Посмотрите тут

Zau4man

Что то пока не работает гит

#9 28 августа 2021 в 19:52

Что то пока не работает гит

Lora

редактор приплюсовал пробел к ссылке, поправил.

#10 28 августа 2021 в 20:09

А что в $action?

Добавлено спустя 3 минуты

 My-InstantCMS.Ru, а при чём тут контроллер?)))

#11 28 августа 2021 в 20:54

А просто $this->controller_имяконтроллера->метод() не работает?

 

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.