ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp のモデル層に関する質問
このフレームワークをしばらく使用していますが、ビュー層とコントローラー層だけを使用したことがあり、モデル層は実際の開発で何に使用されるか知っている人はいますか?
返信 ディスカッション (解決策)
モデルは、アプリケーションのデータのロジックを処理するアプリケーションの一部です。
しかし、データベースへのアクセスはすべてコントローラー内で行われます。たとえば、以下のコントローラー内のコードは、以下の一部をモデルに封入することが合法であることを意味します。
public function goodsPage(){ $table_goods=M('goods'); $goods_id=I('param.id'); $info_where['id']=$goods_id; $goods_info=$table_goods->where($info_where)->field('id,name,price,type,img,detail_img1,detail_img2,detail_img3,number,supply')->select(); $this->assign('info',$goods_info); $this->display(); }
Model は、アプリケーション データのロジックを処理するアプリケーションの一部です。
通常、モデル オブジェクトはデータベース内のデータへのアクセスを担当します。
しかし、データベースへのアクセスはすべてコントローラー内で行われます。たとえば、以下のコントローラー内のコードは、以下の一部をモデルに封入することが合法であることを意味します。
public function goodsPage(){ $table_goods=M('goods'); $goods_id=I('param.id'); $info_where['id']=$goods_id; $goods_info=$table_goods->where($info_where)->field('id,name,price,type,img,detail_img1,detail_img2,detail_img3,number,supply')->select(); $this->assign('info',$goods_info); $this->display(); }
次に、M、V はありませんMとCの明確な分業なので、MかCに固執しすぎる必要はありません
MVCの一般的な説明によると、Webサイト開発では、MとV、Cで作業を完了する必要がありますはほとんど何の関係もありません (特に複数のエントリの場合) アーキテクチャ)
最新のフレームワークでは、M はデータベース操作の役割を果たします。実際、ビジネス ロジックの一部は C で完成しています
次のアクション コードを書いて動作するかどうかを確認してください:
public function goodsPage(){ $goods=D('Goods'); $goods_info = $goods->foo(); $this->assign('info',$goods_info); $this->display(); }
モデル フォルダーに GoodsModel.class.php ファイルを作成します
コードは次のとおりです:
<?phpclass GoodsModel extends Model{ public function foo(){ $table_goods=M('goods'); $goods_id=I('param.id'); $info_where['id']=$goods_id; $goods_info=$table_goods->where($info_where)->field('id,name,price,type,img,detail_img1,detail_img2,detail_img3,number,supply')->select(); return $goods_info; }}