0

次の設定でinsertValue関数を呼び出す方法がわかりません。

これは私のブートストラップです。コントローラを設定し、モデルをロードします。(それほど重要ではありません)

<?php
$controller = new Register;
$controller->loadModel('register');
?> 

これは、loadModel関数を持つコントローラークラスです。

class Controller {
public static $model;
public function loadModel($name) {
    $path = 'models/'.$name.'Model.php';
    if(file_exists($path))
    {
        require 'models/'.$name.'Model.php';
        $modelName = $name .'Model';
        $this->model = new $modelName;
    }
}
}

これは親モデルクラスです:

class Model {
public static $database;

function __construct() {
    $this->database = new Database();
}

}

これで、Databaseクラスに呼び出したいinsertValue()という関数があり、レジスタクラスが呼び出し元になります。これはControllerの拡張です

レジスタクラスは次のように表示されます。

class Register extends Controller {


function __construct() {
    parent::__construct();
    $this->view->render("register", "index", "Register", TRUE);
    }
...
I tried calling it like so:
$this->model->database->insertValue();
but it doesn't even execute.
4

1 に答える 1

0

フィールドデータベースモデルが静的であるためだと思います。しかし、あなたはそれをダイナミックに呼んでいます。static 宣言を削除してみてください。

于 2013-03-01T19:04:07.220 に答える