Как вы можете использовать метод из родительского контроллера для установки приватной переменной в php?

У меня есть простая структура MVC, которую я использую, где я использую следующий вызов для загрузки модели в каждую функцию в контроллере:

$member_model = $this->loadModel('Members');

То, что я хотел бы сделать, это вызвать это один раз, чтобы каждая функция в Member Controller могла использовать его, а не вызывать его в каждой функции.

Что-то вроде:

class Members extends Controller
{
private $member_model = $this->loadModel('Members');

function myFunction(){
myvar = $member_model->someFunction();
}
}

Замечания: loadModel — это метод класса Controller, который расширяет контроллер Members.

Я получаю различные ошибки в зависимости от того, является ли переменная приватной / публичной или нет, однако она работает внутри функции.

Можно ли вообще сделать это на уровне класса, если да, то как?

Обновление 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);
}
}
}

-1

Решение

вы можете использовать его в конструкторе

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();
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]