モデルはレイヤーです。クラスやオブジェクトではありません。
また、 SRPに準拠してコードを記述した場合、モデルレイヤーにはいくつかの異なるタイプの構造が含まれます。少なくとも、ドメインビジネスロジックとストレージ抽象化のために別々のクラスがあります。
あなたがここに持っているのは完全な混乱です。ドメインロジックとストレージメカニズムの両方を同じクラスにまとめる(そしてそれが「モデル」であるかのように見せかける)だけでなく、SQLをプレゼンテーション層に直接公開します。
適切なモデルレイヤーを構築しようとした場合、現在のビューはサービスインスタンス(ドメインビジネスロジックをビューおよびコントローラーから分離するために使用する構造のタイプ)から情報を要求し、必要なデータを取得します。
このサービスは、適切なドメインオブジェクトをインスタンス化し、以前にコントローラーによって設定された状態に基づいて、何らかの形式のストレージ抽象化(データマッパー、リポジトリ、作業単位、dao、または同様の構造)を使用してそれらに情報を取得します。次に、入力されたドメインオブジェクトに対して必要なデータ操作を実行した後、データをビューに返します。
ビューは、コントローラーから受信した情報と以前の信号に基づいて、どのような種類の応答を生成するかを決定します。応答の指示がHTMLの場合、出力を構成するために1つまたは(通常は)複数のテンプレートを使用します。リダイレクトをトリガーするために、HTTPロケーションヘッダーだけを送信する方がよいと考えました。
さらに読むために、私はこの答えをお勧めします。
重要なのは、現在、MVCの概念を単純化して、プレゼンテーションとモデルレイヤーの分離さえも破られているということです。