1

Model の子であるモデルクラス ModelHome があります。

class ModelHome extends Model

Model は Controller クラスの変数です。つまり:

class Controller {

    public $model;

    public function __construct () {
        $this->model = new Model;
    }
}

ModelHome クラス内のメソッド内から Controller クラス内のメソッドにアクセスすることは可能ですか?

私はparent::を試し、名前でクラスを呼び出す、つまりController::methodを試しましたが、必要なメソッドにアクセスするための適切なスコープが見つからないようです。

ありがとう。

-ヴィンス

4

1 に答える 1

2

まず、 のインスタンスが必要ですModelHome。のインスタンスを作成すると、存在するという理由だけでModel自動的に拡張されません。だから、私はあなたがすべきだと思います:ModelHomeModelHomeController::__construct()

public function __construct () {
    $this->model = new ModelHome;
}

ただし、クラス/インスタンスModelHomeについてはわかりません。コントローラーへのリンクを含むパラメーターを受け取るinをController作成できます。このような:__constructModelHome

class ModelHome extends Model {

    public $controller;

    public function __construct ($controller) {
        $this->controller = $controller;
    }
}

class Controller {

    public $model;

    public function __construct () {
        $this->model = new ModelHome($this);
    }
}

これで、ModelHome は以下を使用してコントローラーを認識します。$this->controller

于 2012-04-08T11:54:56.337 に答える