php mvc比赛列表
Posted 梁栋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php mvc比赛列表相关的知识,希望对你有一定的参考价值。
文件创建样式:
new_file.php是入口文件,代码为:
<?php //入口文件 被浏览器访问的 spl_autoload_register(\'userAutoload\'); //注册自动加载函数 自动加载函数不用主动调用 在需要的时候自动调用 function userAutoload($classname){ //定义确定的类和路径 $class_list = array( \'Controller\' => FRAMEWORK_PATH.\'Controller.class.php\', \'Factory\' => FRAMEWORK_PATH.\'Factory.class.php\', \'Model\' => FRAMEWORK_PATH.\'Model.class.php\', \'mysqlDB\' => FRAMEWORK_PATH.\'MySQLDB.class.php\' ); if(isset($class_list[$classname])){ require $class_list[$classname]; }elseif(substr($classname, -10) == \'Controller\'){ //判断是否为控制器 require CONREOLLER_PATH.$classname.\'.class.php\'; }elseif(substr($classname, -5) == \'Model\'){ //判断是否为模型类 require MODEL_PATH.$classname.\'.class.php\'; } } //目录地址常量 define(\'ROOT_PATH\', getcwd().\'/\'); //定义根目录 define(\'APP_PATH\',ROOT_PATH.\'application/\'); define(\'FRAMEWORK_PATH\',ROOT_PATH.\'framework/\'); //控制器类 $c = isset($_GET[\'c\']) ? $_GET[\'c\'] : \'Match\'; define("PLATFORM", isset($_GET[\'p\']) ? $_GET[\'p\'] : \'test\'); //动作 $default_action = \'list\'; //默认值 $a = isset($_GET[\'a\']) ? $_GET[\'a\'] : $default_action; //平台相关路径常量 define(\'CONREOLLER_PATH\', APP_PATH.PLATFORM.\'/controller/\'); define(\'MODEL_PATH\', APP_PATH.PLATFORM.\'/model/\'); define(\'VIEW_PATH\', APP_PATH.PLATFORM.\'/view/\'); //调用控制器 $controller = $c.\'Controller\'; //实例化对象 $Match = new $controller(); $action = $a.\'Action\'; $Match->$action();
不传参数时p默认为tese c默认为Match a默认为list
实例化一个MatchController对象
MatchController类代码为:
<?php class MatchController extends Controller{ function listAction(){ //查询数据 $match = Factory::getDx(\'MatchModel\'); //用工厂类实例化MatchModel类对象 //$match = new MatchModel(); $arr = $match->getList(); //调用模板 require VIEW_PATH.\'match_v.html\'; } function delAction(){ $id = $_GET[\'id\']; echo "id是:".$id."<br />"; echo "比赛控制器的删除动作执行了"; // header(\'location:new_file.php\'); } }
调用MatchController父类Controller(基础控制器)的构造函数:
<?php //基础控制器 class Controller{ function __construct(){ $this->_initContentType(); } function _initContentType(){ header(\'Content-Type:text/html; charset=utf-8\'); } protected function _jump($url,$info=null,$wait=3){ if($info == \'\'){ header(\'location:\'.$url); }else{ header(\'refresh:\'.$wait.\';url=\'.$url); echo $info; } die; } }
调用Factory类getDx方法实例化一个MatchModel对象:
<?php //工厂类 class Factory{ /*判断模型对象有没有 有就直接返回 没有就new一个 $model_list = array( \'MatchModel\' => new MatchModel() 键是类名,值是这个类的一个对象 )*/ static function getDx($className){ //$className可变类名 static $model_list = array(); if(!isset($model_list[$className])){ $model_list[$className] = new $className; } return $model_list[$className]; } }
工厂类的作用就是单例模型类,传入类名,返回对象
引入MatchModel类,继承Model(基础模型类),当new一个对象的时候,调用Model的构造函数,连接数据库,单例话一个MySQLDB对象存在$this->_dao中,MatchModel对象调用MatchModel方法,执行sql语句,调用视图层显示在页面上:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <th>队伍一</th> <th>比分</th> <th>队伍二</th> <th>时间</th> </tr> <!--循环遍历--> <?php foreach($arr as $v){ ?> <tr> <td><a href="new_file.php?c=Team&a=list&id=1&tname=<?php echo $v[\'t1_name\']; ?>"><?php echo $v[\'t1_name\']; ?></a></td> <td><?php echo $v[\'t1_score\'].\':\'.$v[\'t2_score\']; ?></td> <td><?php echo $v[\'t2_name\']; ?></td> <td><?php echo date(\'Y-m-d H:i:s\',$v[\'m_time\']); ?></td> <td><a href="new_file.php?a=del&id=1">删除</a></td> </tr> <?php } ?> </table> </body> </html>
以上是关于php mvc比赛列表的主要内容,如果未能解决你的问题,请参考以下文章
使用 json rereiver php mysql 在片段中填充列表视图
ASP.net MVC 代码片段问题中的 Jqgrid 实现
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。(代码片段