在Kohana / PHP中,如何将执行发送到新的控制器/操作?

时间:2011-01-19 15:05:10

标签: php kohana kohana-3

在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
}

根据this documentation,至少第一次重定向应该有效。我正在使用 Kohana 3

如何从此控制器操作方法向新控制器/操作发送执行?

附录

出于某种原因,url :: redirect不可用,这是我为url::获得的代码完成情况:

alt text

@bharath,我尝试url::current()并收到此错误:

alt text

3 个答案:

答案 0 :(得分:8)

问题在于您正在查看Kohana 2文档。转到kohana主页,找到正确的文档。此外,出于某种原因,即使你说你正在与3合作,每个人都会给你Kohana 2个答案。

要重定向,请从控制器的上下文执行此操作: $this->request->redirect($something);

$something可能是:

controller
controller/action
http://url.com

Hereredirect方法的api文档(请注意,这使用url::site来解析网址;您可能也想查看该方法的来源。

答案 1 :(得分:0)

我不是很确定,但我认为您可以简单地使用redirect()函数传递您要发送到的其他控制器中的任何参数

示例

redirect(controllername/method)

答案 2 :(得分:0)

不应该是:

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

如果它不起作用,你可能在调用重定向之前有一些输出(在这种情况下你可能会得到“Headers already sent”错误。)