У меня есть простой MVC рамки я использую, когда я использую следующий вызов для загрузки модели в каждой функции в контроллере:Как вы можете использовать метод из родительского контроллера для установки частной переменной в php?
$member_model = $this->loadModel('Members');
То, что я хотел бы сделать, это вызов, который когда-то каждая функция контроллер Member может использовать его, а не называть его в каждой функции.
что-то вроде:
class Members extends Controller
{
private $member_model = $this->loadModel('Members');
function myFunction(){
myvar = $member_model->someFunction();
}
}
Примечания: loadModel это метод класса контроллера которого контроллер Пользователей проходит.
Я получаю ряд различных ошибок в зависимости от того, является ли переменная частной/общедоступной или нет, однако она работает в пределах функции.
Возможно ли это сделать на уровне класса, если да, то каким образом?
Update 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);
}
}
}
I f Я включаю его в свой конструктор, я получаю db-ошибку, если он до 'parent :: __ construct();' и я получаю «Can not redeclare class ClassesModel», если это произойдет после него. См. Редактирование кода. – nikmav
затем сначала вызовите родительский конструктор ... без каких-либо подробностей вам не поможет ... я сначала изменил код с родительским конструктором – donald123
Я включил код в свои правки. что-то выделяется? – nikmav