PHP报错求助:调用未定义的Controller::getDepartments()方法
错误原因分析
- 未实例化Controller类:代码中直接调用
$controller->getDepartments(),但未创建Controller类的实例,也未引入对应的类文件。 - Controller类缺少getDepartments方法:即使实例化了Controller类,该类内部也没有定义
getDepartments()方法,或者方法名存在拼写、大小写错误。 - 依赖未正确传递:如果Controller类需要数据库连接,实例化时未传入
db/connect.php中创建的数据库对象,会导致方法无法执行数据库操作。
解决方案
- 引入并实例化Controller类:在调用方法前,先引入Controller类文件并完成实例化,确保数据库连接传入(如果需要):
<?php $title = "员工信息录入表单"; require_once "layout/header.php"; require_once "db/connect.php"; // 引入Controller类文件(假设文件名为Controller.php) require_once "Controller.php"; // 实例化Controller,传入数据库连接 $controller = new Controller($db); $result = $controller->getDepartments(); print_r($result->fetchAll(PDO::FETCH_ASSOC)); ?> - 在Controller类中实现getDepartments方法:打开Controller类文件,添加对应方法的逻辑:
class Controller { private $db; // 构造函数接收数据库连接 public function __construct($dbConnection) { $this->db = $dbConnection; } // 实现获取部门数据的方法 public function getDepartments() { $sql = "SELECT * FROM departments"; return $this->db->query($sql); } } - 检查路径与拼写:确认Controller类文件的引入路径正确,方法名
getDepartments的拼写、大小写与调用处完全一致。
内容的提问来源于stack exchange,提问作者SAKDEE
相关产品推荐
相关产品推荐

