В одной функции как выполнить два метода перенаправления в CodeIgniter?

#php #function #codeigniter #controller

#php #функция #codeigniter #контроллер

Вопрос:

В моей функции контроллера я пытаюсь выполнить два действия redirect() или $this->method , но это работает только для первого. Когда код получает метод redirect или $this, он перенаправляет на эту функцию или страницу. Но мне нужно выполнить два действия параллельно, например —

Я использую Codeigniter 3.1.10

 if($result == TRUE) {
$data = array(
details;
);
$this->send_mail($data); //This goes to send_mail functin
$this->session->set_flashdata('success', 'Account created successfully.' );
redirect('Dashboard');
}
  

Я хочу что-то вроде этого. Да, конечно, у меня есть альтернатива, например, продолжить работу над моей send_mail() функцией, но каждый раз у меня возникают сообщения другого типа и тело, поэтому я хочу какой-нибудь удобный способ выполнить две работы за один раз. Если кто-нибудь подал такую идею, как мне это сделать. Это действительно очень здорово и очень просто для меня, в другой раз я создам более 4 функций для всех других задач.

Комментарии:

1. В приведенном выше примере вы только что написали 1 перенаправление.

2. Помогите мне понять это: есть ли перенаправление в send_mail() функции? И затем вы хотите перенаправить на панель мониторинга впоследствии? Если вы сделаете send_mail() функцию закрытой, вы могли бы заставить ее возвращать boolean и перенаправлять на основе этого, или вы могли бы установить ее как void и просто вызвать ее «и забыть»

3. где send_mail() живет? это метод внутри одного контроллера? это внутри помощника? это на другом контроллере? Вызов другого метода (с $this->method_name() ) на самом деле не является перенаправлением. Что я бы предложил, так это изменить вызов send_mail на $somevariable = $this->send_mail($data) . Делая это, вы явно заставляете этот метод запускаться и назначаете его вывод $somevariable вместо того, чтобы фактически позволять send_mail управлять потоком (это тоже хорошая практика, вам может потребоваться предпринять разные действия в зависимости от того, что send_mail() возвращает

4. Да, на самом деле $this-> send_mail() — это его метод в том же контроллере, когда эта строка встретит его, я перейду к методу send_mail(), а остальная часть строки выполняться не будет. В этом проблема. Но давайте попробуем ваше предложение $ some = $ this-> send_mail().

5. Используя $some = $this->send_mail($data); перенаправление(‘Панель инструментов’); В контроллере при получении строки $some он переходит к методу send_mail(), не вызывая оставшуюся строку кода.