我有一個名爲home.php
的控制器,其中有一個名爲podetails
的函數。我想在另一個控制器user.php
中調用此函數。
是否有可能這樣做?我已閱讀CI中的HMVC
,但我想知道是否可以在不使用hmvc的情況下執行此操作?如何在codeigniter中的另一個控制器中調用一個控制器功能
9
A
回答
11
要:
在你只需要調用podetails()假設控制器
請擴展控制器請按照此tutorial或看到下面的一些代碼。 private/public/protected
之間
差異使得在文件夾命名爲/application/core/
MY_Controller.php
在該文件的文件都像
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
protected $data = Array(); //protected variables goes here its declaration
function __construct() {
parent::__construct();
$this->output->enable_profiler(FALSE); // I keep this here so I dont have to manualy edit each controller to see profiler or not
$this->load->model('some_model'); //this can be also done in autoload...
//load helpers and everything here like form_helper etc
}
protected function protectedOne() {
}
public function publicOne() {
}
private function _privateOne() {
}
protected function render($view_file) {
$this->load->view('header_view');
if ($this->_is_admin()) $this->load->view('admin_menu_view');
$this->load->view($view_file . '_view', $this->data); //note all my view files are named <name>_view.php
$this->load->view('footer_view');
}
private function _isAdmin() {
return TRUE;
}
}
,現在一些代碼在任何你現有的控制器只編輯1或2第二行,其中
class <controller_name> extends MY_Controller {
和你做
也注意到,所有的變量是指在視圖中使用在某些控制器的這個變量(array) $this->data
例如由MY_Controller
擴展
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class About extends MY_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
$this->data['today'] = date('Y-m-d'); //in view it will be $today;
$this->render('page/about_us'); //calling common function declared in MY_Controller
}
}
+0
謝謝你好多了:) – user2936213
+0
不錯的解決方案。謝謝 – user2899728
2
將podetails()寫成助手文件中的函數。
然後在兩個控制器中加載該助手。
--controller 1--
function podetails()
{
podetails(); // will call function in helper ;
}
--controller
2--
function podetails()
{
podetails(); // will call function in helper ;
}
相關問題
- 1. 如何在codeigniter中的另一個控制器中調用控制器功能
- 2. 如何在codeigniter中調用另一個另一個控制器
- 3. 如何從另一個控制器調用一個控制器的功能
- 4. 如何調用一個控制器的功能,從另一個控制器AngularJs
- 5. Opencart - 在控制器中,如何從另一個控制器調用功能
- 6. 從另一個控制器調用另一個控制器的功能
- 7. Yii從另一個控制器調用控制器功能
- 8. 如何從codeigniter中的另一個控制器調用控制器?
- 9. Angularjs如何從另一個控制器調用控制器的功能
- 10. 如何在同一個控制器中調用控制器的輸出功能?
- 11. 在Codeigniter中,將一個控制器擴展到另一個控制器中
- 12. 在另一個控制器中調用控制器方法Ember
- 13. 一個控制器可以調用另一個控制器嗎?
- 14. codeignetor調用控制器中的另一個控制器函數
- 15. 在angularjs中調用另一個控制器下的一個控制器
- 16. 在另一個控制器中調用一個控制器的方法?
- 17. Angularjs,如何從另一個控制器調用控制器
- 18. 如何調用另一個控制器
- 19. 在Codeigniter中可以從另一個控制器調用另一個控制器的方法嗎?
- 20. 調用從另一個控制器控制器內部的功能 - AngularJS
- 21. 在另一個控制器中重用彈簧服務控制器功能
- 22. 從另一個控制器使用控制器CodeIgniter和HMVC
- 23. 調用控制器內的另一個控制器如果
- 24. 如何調用cakephp中另一個控制器中的控制器動作?
- 25. 無法在codeigniter中調用另一個控制器方法
- 26. 我想打電話從一個控制器的功能,另一個控制器
- 27. 鈦合金:從另一個控制器調用控制器功能
- 28. 從angularjs中的另一個模塊的控制器調用一個模塊的控制器功能
- 29. 當我即將切換到另一個控制器時,如何調用控制器中的某個功能
- 30. 如何將一個控制器數據調用到另一個控制器?
用示例解釋和使用 –
我已經解釋得很清楚了。請再次閱讀該問題。 – user2936213
請註明具體用途? –