2011-01-19 1 views
1

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

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 
} 

Согласно this documentation по крайней мере, первый редирект должен работать. Я использую Kohana 3.

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

Добавление

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

alt text

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

alt text

+0

Какая у вас IDE? – RobertPitt

+0

@ RobertPitt - Eclipse + PDT – techexpert

ответ

8

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

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

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

controller 
controller/action 
http://url.com 

Here являются API Docs для redirect метода (заметим, что это использует url::site для разбора URL, вы можете захотеть взглянуть на источник этого метода тоже

. 0
+0

, что имеет смысл, это произошло раньше, поэтому kohana 3 docs здесь http://kohanaframework.org/guide, что является лучшим способом поиска «url ::» или «перенаправления» в документах kohana 3, поскольку на этой странице нет окна поиска –

+1

@Edward: Это руководство, вот [api docs] (http://kohanaframework.org/guide/api), которые доступны для поиска. В руководстве больше учебника, api docs являются скорее ссылкой. – ryeguy

+0

Но url - это статический класс, и поскольку он существует, он должен иметь метод перенаправления, как указано в документации. – RobertPitt

0

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

пример

redirect(controllername/method) 
+0

, когда я пытаюсь, как выше, я получаю 'Call to undefined function redirect()', но даже версия url :: redirect() не работает, она не получает erorr, но она не перенаправляет на новый контроллер, я пытаюсь выяснить, что именно он делает, если что-нибудь –

+0

well redirect() будет частью класса url, поэтому вам нужно сделать что-то вроде этого url :: redirect (controllername/метод) ;. это предполагает, что класс url загружен. если не загружать класс url и попробовать это. надеюсь это поможет. – bharath

+0

oops Извините, не прочитал все, что вы пробовали, уже это? .. – bharath

0

Если это не будет:

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

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

+0

технически, что должно работать, но я даже не получаю «перенаправление» в моем завершении кода для 'url ::', см. выше скриншот, что может быть причиной этого? –

Смежные вопросы