В Kohana / PHP, как можно отправить выполнение на новый контроллер / действие? - PullRequest
1 голос
/ 19 января 2011

В PHP / Kohana у меня есть метод действия контроллера, который выполняет некоторую обработку. Когда он закончится, я хочу отправить его на другой контроллер, например:

public function action_import_csv()
{
    Kohana_Import_Driver_Csv::process_files_from_csv_to_mysql($this->import_directory);
    //url::redirect(Route::get('backend_application')->uri()); //undefined method URL::redirect()
    //redirect(Route::get('backend_application')->uri(), null); //undefined function
}

Согласно этой документации должен работать хотя бы первый редирект. Я использую Кохана 3 .

Как я могу отправить выполнение из этого метода действия контроллера на новый контроллер / действие?

Добавление

По некоторым причинам url :: redirect недоступен, вот код завершения, который я получаю для url:::

alt text

@ bharath, я попробовал url::current() и получил эту ошибку:

alt text

Ответы [ 3 ]

8 голосов
/ 19 января 2011

Проблема в том, что вы смотрите на Кохану 2 документа.Перейдите на домашнюю страницу kohana и найдите правильные документы.Кроме того, по какой-то причине все дают вам ответы Kohana 2, даже если вы заявили, что работаете с 3.

Чтобы перенаправить, сделайте это из контекста контроллера: $this->request->redirect($something);

$something может быть:

controller
controller/action
http://url.com

Здесь - API-интерфейсы для метода redirect (обратите внимание, что для разбора URL-адреса используется url::site; вы можете захотетьпосмотрите на источник этого метода тоже.

0 голосов
/ 19 января 2011

Разве это не должно быть:

url::redirect('controller/method');

И если это не сработает, у вас, вероятно, были какие-то выходные данные перед вызовом перенаправления (в этом случае вы, вероятно, получите ошибку «Заголовки уже отправлены»).

0 голосов
/ 19 января 2011

Я не очень уверен, но я думаю, что вы можете просто использовать функцию redirect(), передавая другой контроллер, на который вы хотите отправить, с любыми параметрами

пример

redirect(controllername/method)
...