0

構築した小さなMVCがあり、さまざまなコントローラーからモデルにアクセスしたいと考えています。

すなわち

class Controller {
    function A() {
    }
}

class Search extends Controller {
    function B() {
        $this->model->doSomething();    
    }
}

class Profile extends Controller {
    function B() {
        ***** HERE ***** ?????????????????????????????????????????????
        Search::doSomething();
    }
}

class Model {

}

class search_model extends Model {     
    public function doSomething() {
        // Do Something
        echo "doing something";
    }
}

class profile_model extends Model { 
    public function getProfile() {
        // Get Profile
        echo "getting profile";
    }
}

プロファイルコントローラーで検索コントローラー関数doSomething()にアクセスしたいのですが、ここそれらの線に沿ったセクションまたは何か?

4

2 に答える 2

0

モデルを他のコントローラーに含めるだけです。複数のコントローラから同じモデルにアクセスしても問題ありません

于 2012-08-20T11:52:44.450 に答える
0

Controller は Search と Profile の両方の親クラスであるため、両方で再利用できる関数を追加できます。

class Controller {

    public $model;

    public function doSomething() {
        if($this->model === null)
        {
            $this->model = new search_model();
        }
        return $this->model->doSomething();
    }
}
于 2012-08-20T11:54:04.820 に答える