我试图让主模型出现此错误:
致命错误:未捕获的类型错误:传递给 App\Models\Model::__construct(( 的参数 1 必须是 App\Models\Database 的实例,给定 App\Database 的实例,在第 14 行的 C:\xampp\htdocs\Work\AppDarbNajah\App\Controllers\ArticlesControllers.php 中调用,并在 C:\xampp\htdocs\Work\AppDarbNajah\App\Models\Model.php:9 堆栈跟踪:#0 C:\xampp\htdocs\Work\AppDarbNajah\App\Controllers\ArticlesController.php(14(: App\Models\Model->__construct(Object(App\Database(( #1 C:\xampp\htdocs\Work\AppDarbNajah\Public\index.php(22(: App\Controllers\ArticlesController->loadArticles(( #2 {main} 扔在第 9 行 C:\xampp\htdocs\Work\AppDarbNajah\App\Models\Model.php
我的代码是 1- 型号
<?php
namespace AppModels;
class Model{
protected $db;
protected $table;
public function __construct(Database $db){
$this->db = $db;
}
public function query($statement, $attributes= null){
return $this->db->query($statement);
}
}
2- 文章控制器
<?php
namespace AppControllers;
use AppModelsArticlesModel;
class ArticlesController{
public function loadArticles() {
$app = new App();
$art_table = new ArticlesModel($app->getDb());
return $art_table->load();
}
}
由于class Model
在namespace AppModels;
因此总共AppModelsDatabase
对Database
的(相对(引用。
您现在可以将引用设为绝对:
__construct(AppDatabase $db) { ...
或将use AppDatabase;
放在命名空间之后。
有关详细信息,请参阅文档