【问题标题】:Accessing controller's function访问控制器的功能
【发布时间】:2016-03-31 13:50:50
【问题描述】:

我正在使用 Codeigniter 框架来开发一个网站。我目前正在查看视图文件夹下的home.php 视图。我需要使用其中一个控制器内的UserInfo() 函数。任何建议如何访问该功能?

class Welcome extends CI_Controller {

            public function UserInfo(){

            $this->load->model('model_user');                
            $data['title'] = 'Users';              
            $data['users'] = $this->model_user->getUser();              
            $this->load->view('template/users', $data);
        }
}

【问题讨论】:

  • 粘贴您的型号代码!!
  • 在问题中选择Edit并添加用户模型的代码
  • 添加了model_user。
  • 如果您想在当前控制器函数中获取用户详细信息,只需在控制器函数中包含用户模型并获取用户记录。您不能在另一个控制器中调用控制器方法。
  • 编辑了问题并澄清了......关于为什么我无法访问$users的任何建议?

标签: php codeigniter


【解决方案1】:

不能在另一个控制器中调用控制器方法。没办法。

你有两种方法可以解决这个问题

  1. 如果你想访问放置在 控制器,将其添加到模型中。所以通过加载模型你可以调用 它。
  2. 如果您只需要调用该函数,请使用redirect('welcome/UserInfo')

【讨论】:

  • Abdulla,我不想在另一个控制器中调用控制器方法。我现在在home.php 视图中,我有一个表格来显示我的数据,需要函数 UserIfo() 来做到这一点。有可能吗?
  • 当然,我有一个名为“users”的表。我有一个model_user,它连接到用户表并获取用户数据。现在我想在home.php 视图中显示该数据。
  • 这个$this->load->view('home', $data);怎么样
  • 显示完整的代码。我无法对此有所了解。所以我可以帮你
  • Abdulla,我尝试编辑问题中的代码以帮助您更好地了解我在做什么。完整代码如上。
【解决方案2】:

由于您想在其他控制器中调用控制器功能。在 codeigniter App 文件夹 core 文件夹中存在您创建一个自定义核心 controller 并且所有其他控制器都使用您的自定义控制器扩展

在您的自定义核心控制器中

class CustomCore extends CI_Controller
{
     /* ---YOUR FUNCTION IN CUSTOMCORE---- */

      public function mycorefunc()
      {
           //Do something
      }

}

您的所有其他控制器都使用自定义核心扩展

class YourController extends Customcore
{

      function controllerfunction()
      {
            $this->mycorefunc();// Call corefunction 
      }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多