php ci 调用控制器,如何从Codeigniter中的另一个控制器加载一个控制器?
小編典典
您無法從CI中的控制器加載控制器-除非您使用HMVC或其他工具。
您應該考慮一下您的體系結構。如果需要從另一個控制器調用一個控制器方法,則可能應該將該代碼抽象到幫助程序或庫中,并從兩個控制器中調用它。
更新
再次閱讀您的問題后,我意識到您的最終目標不一定是HMVC,而是URI操作。如果我錯了,請糾正我,但似乎您正在嘗試使用第一部分作為方法名稱來完成URL,并完全省略了控制器名稱。
在這種情況下,您可以通過對路線進行創意來獲得更清潔的解決方案。
舉一個非常基本的例子,假設您有兩個控制器,controller1和controller2。
Controller1有方法method_1-并且controller2有方法method_2。
您可以這樣設置路線:
$route['method_1'] = "controller1/method_1";
$route['method_2'] = "controller2/method_2";
然后,您可以使用URL調用方法1,并使用調用http://site.com/method_1方法2
http://site.com/method_2。
盡管這是一個硬編碼的非常基本的示例-但是如果您需要做的就是從URL中刪除控制器,它可以將您帶到所需的位置。
從文檔中:“如果您的控制器包含一個名為_remap()的函數,則無論您的URI包含什么,它將始終被調用。”:
public function _remap($method)
{
if ($method == 'some_method')
{
$this->$method();
}
else
{
$this->default_method();
}
}
2020-05-26
總結
以上是生活随笔為你收集整理的php ci 调用控制器,如何从Codeigniter中的另一个控制器加载一个控制器?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海欢乐谷坐几号线能到
- 下一篇: php png jpg,php如何将pn