【发布时间】:2020-01-28 22:04:28
【问题描述】:
我是 PHP 新手,我正在学习在线课程(因此我没有使用自动加载或任何其他方式来加载类)。
我的问题是我的控制器类(我在其中使用“use”)看不到我的模型类(我在其中声明了命名空间)。
错误是:
致命错误:未捕获的错误:在第 20 行的 C:\xampp_php729\htdocs\Freeblog\App\Controllers\postController.php 中找不到类 'App\Models\Post'
这是我的代码:
PostController.php
namespace App\Controllers;
use App\Models\Post;
class PostController {
protected $layout = __DIR__ . '/../../Layout/index.template.php';
protected $conn;
public $content;
public $posts;
protected $myPost;
public function __construct(\PDO $conn) {
$this->conn = $conn;
try {
$this->myPost = new Post($conn);
} catch (Exception $e) {
die($e->getMessage());
}
$this->content = $this->process();
}
....
}
Post.php:
namespace App\Models;
use \PDO;
class Post {
protected $conn;
public function __construct(PDO $conn){
$this->conn = $conn;
}
...
}
这是项目结构:
【问题讨论】:
-
那么,如果您不使用任何自动加载,您希望如何将文件包含(加载)?
-
我不知道我正在参加一个课程来学习它:)
-
在其他两个 php 文件中,我做了同样的事情并且它起作用了.. 唯一的区别是它们在同一个包中(但我试图将 Post 和 PostController 移动到同一个包中)包,它不起作用)
标签: php class import namespaces