Problemer med at hente default model.
Hej eksperter.Jeg sidder og roder med et mvc som jeg er ved at være noget et godt stykke med. Men har et problem.
Når man kommer ind på siden skal den hente nogle dataer fra min database og smide ind på forsiden. Dette kan jeg simpelt hen ikke få den til. Jeg får denne fejl : Notice: Undefined property: Index::$model in C:\wamp64\www\portfolio\controllers\index.php on line 11. Ydermere så kommer den med nogle forskellige fejl under denne fejl.
det er som følgende.
# Time Memory Function Location
1 0.0032 366176 {main}( ) ...\index.php:0
2 0.0058 410832 Bootstrap->init( ) ...\index.php:14
3 0.0059 411208 Bootstrap->_loadDefaultController( ) ...\Bootstrap.php:15
4 0.0452 415808 Index->index( ) ...\Bootstrap.php:51
ud fra hvad jeg kan læse mig frem til kommer fejlen fra min bootstrap fil. Så her kommer koden på den. Jeg skal på en eller anden måde have den til at indlæse min index_model.php fra min models bibliotek når min url er tom. Kan simpelt hen ikke finde ud af hvad jeg skal gøre.
Bootstrap.php
<?php
class Bootstrap {
private $_url = null;
private $_controller = null;
private $_controllerPath = 'controllers/';
private $_modelPath = 'models/';
private $_errorFile = 'cmserror.php';
private $_defaultFile = 'index.php';
public function init() {
$this->_getUrl();
if(empty($this->_url[0])) {
$this->_loadDefaultController();
return false;
}
$this->_loadExistingController();
$this->_callControllerMethod();
}
public function setControllerPath($path) {
$this->_controllerPath = trim($path, '/') . '/';
}
public function _setModelPath($path) {
$this->_modelPath = trim($path, '/') . '/';
}
public function setErrorFile($path) {
$this->_errorFile = trim($path, '/');
}
public function setDefaultFile($path) {
$this->_defaultFile = trim($path, '/');
}
private function _getUrl() {
$url = isset($_GET['url']) ? $_GET['url'] : null;
$url = rtrim($url, '/');
$url = filter_var($url, FILTER_SANITIZE_URL);
$this->_url = explode('/', $url);
}
private function _loadDefaultController() {
$file = $this->_controllerPath . $this->_defaultFile;
if(file_exists($file)) {
require $file;
$this->_controller = new Index();
$this->_controller->loadModel($this->_url[0], $this->_modelPath);
$this->_controller->index();
}
/*require $this->_controllerPath . $this->_defaultFile;
$this->_controller = new Index();
$this->_controller->index();*/
}
private function _loadExistingController() {
$file = $this->_controllerPath . $this->_url[0] . '.php';
if(file_exists($file)) {
require $file;
$this->_controller->loadModel($this->_url[0], $this->_modelPath);
} else {
$this->cmserror();
return false;
}
}
private function _callControllerMethod() {
$length = count($this->_url);
if($length > 1) {
if(!method_exists($this->_controller, $this->_url[1])) {
$this->cmserror();
}
switch ($length) {
case 7:
$this->_controller->{$this->_url[1]}($this->_url[2], $this->_url[3], $this->_url[4], $this->_url[5], $this->_url[6]);
break;
case 6:
$this->_controller->{$this->_url[1]}($this->_url[2], $this->_url[3], $this->_url[4], $this->_url[5]);
break;
case 5:
$this->_controller->{$this->_url[1]}($this->_url[2], $this->_url[3], $this->_url[4]);
break;
case 4:
$this->_controller->{$this->_url[1]}($this->_url[2], $this->_url[3]);
break;
case 3:
$this->_controller->{$this->_url[1]}($this->_url[2]);
break;
case 2:
$this->_controller->{$this->_url[1]}();
break;
default:
$this->_controller->index();
break;
}
}
}
private function cmserror() {
require $this->_controllerPath . $this->_errorFile;
$this->_controller = new CmsError();
$this->_controller->index();
exit;
}
}
Håber i kan hjælpe mig med hvad jeg skal skrive og hvorfor og hvor det skal stå. På forhånd tak for hjælpen...
venlig hilsen
Delphiuser