【问题标题】:Calling a controller from another controller in codeigniter (ERROR) [duplicate]在codeigniter(错误)中从另一个控制器调用控制器[重复]
【发布时间】:2019-02-20 15:36:01
【问题描述】:

我有 Login_controller:

if ($query->num_rows() == 1){
    $usuario = $query->row();
    $this->load->library('../controllers/Dashboard_controller');
} 

我有 Dashboard_Controller:

public function index(){
    $this->load->view("dashboard/Dashboard_view");          
}
}

但是,我收到一条消息错误:

遇到 PHP 错误 严重性:通知 消息:未定义的属性:Dashboard_controller::$load 文件名:库/Form_validation.php 行号:147 回溯: 文件:C:\xampp\htdocs\local\acjum1\application\controllers\Login_controller.php 线路:34 功能:图书馆 文件:C:\xampp\htdocs\local\acjum1\index.php 线路:315 函数:require_once

遇到未捕获的异常 类型:错误 消息:在 null 上调用成员函数 helper() 文件名:C:\xampp\htdocs\local\acjum1\system\libraries\Form_validation.php 行号:147 回溯: 文件:C:\xampp\htdocs\local\acjum1\application\controllers\Login_controller.php 线路:34 功能:图书馆 文件:C:\xampp\htdocs\local\acjum1\index.php 线路:315 函数:require_once

我做错了什么?

【问题讨论】:

  • 简短回答:HMVC 不应该以这种方式工作。控制器不应调用其他控制器。您可以从一个控制器重定向到另一个控制器并使用 flashdata、tempdata、常规会话数据(不推荐)或其他方式传递数据,但不能从其他控制器中调用控制器。见this

标签: php codeigniter


【解决方案1】:

试试这个

redirect('/dashboard/index');

【讨论】:

  • 从另一个控制器调用一个控制器与重定向请求并不完全相同。
  • 正确,但我猜他想加载一个新页面,这样就可以了
  • 确实不一样,但一开始不应该这样做,重定向应该是好的
  • 除非 OP 需要在重定向之前设置的变量 ($usuario)。我们对上下文的了解还不够。
  • 他应该对模型进行查询,通常我会在不在控制器中的模型上进行查询
【解决方案2】:

之前有人问过这个问题。 基本上你是在调用控制器而不是索引函数。 请参考:How to load a controller from another controller in codeigniter?

【讨论】:

  • 请不要写 cmets 作为答案。如果该问题之前已被提问和回答过,则该问题应标记为重复。
  • 请在库加载中检查 Dashboard_Controller 而不是 Dashboard_controller
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 2011-09-23
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
  • 2015-09-07
相关资源
最近更新 更多