我有一个简单的MVC框架,我正在使用它,我使用以下调用在控制器的每个函数中加载模型:
$member_model = $this->loadModel('Members');
我想做的是调用一次,以便成员控制器中的每个函数都可以使用它,而不是在每个函数中调用它。
像这样:
class Members extends Controller
{
private $member_model = $this->loadModel('Members');
function myFunction(){
myvar = $member_model->someFunction();
}
}
注意:loadModel 是成员控制器扩展的控制器类的方法。
我收到一系列不同的错误,具体取决于变量是私有/公共还是两者都不是,但它在函数中工作。
是否有可能在班级层面做到这一点,如果是的话,如何做到这一点?
更新 1
成员控制器
class Members extends Controller
{
private $member_model = null;
function __construct()
{
parent::__construct();
$this->member_model = $this->loadModel('Members');
}
}
控制器类
class Controller
{
function __construct()
{
Session::init();
try {
$this->db = new Database();
} catch (PDOException $e) {
die('Database connection could not be established.');
}
$this->view = new View();
}
public function loadModel($name)
{
$path = MODELS_PATH . strtolower($name) . '_model.php';
if (file_exists($path)) {
require MODELS_PATH . strtolower($name) . '_model.php';
$modelName = $name . 'Model';
return new $modelName($this->db);
}
}
}
你可以在构造函数中使用它
class Members extends Controller
{
private $member_model = null;
public function __constructor() {
parent::_constructor();
$this->member_model = $this->loadModel('Members');
}
function myFunction(){
$myvar = $member_model->someFunction();
}
}