在php中正确创建MVC模型类
我正在尝试创建自己的php mvc网站 我已经创建了视图、模型和控制器,但是我在正确使用类和对象时遇到了问题 我有一个模型类,它有一个函数来创建到DB的连接,并将一些数据返回到数组中。当访问index.php时,控制器将访问此函数。然后通过分页将数据输出到html表中 如果我在分页中单击下一页,它就会从模型中获取相同的数组。。但是,由于函数正在重新创建所有sql,因此看起来非常冗余。。我知道这可能是一个基本的oo编程问题,但是如何创建我的模型类,这样我就可以重用数组,而不必每次我想要获取下一块数据时都从头开始创建它 这是我的模型类的概要,为了简单起见,我删除了所有与db命令相关的代码,并创建了数组。如何构造类,以便创建一次数组,然后在需要时在应用程序中重用它。提前谢谢在php中正确创建MVC模型类,php,class,model-view-controller,web-applications,Php,Class,Model View Controller,Web Applications,我正在尝试创建自己的php mvc网站 我已经创建了视图、模型和控制器,但是我在正确使用类和对象时遇到了问题 我有一个模型类,它有一个函数来创建到DB的连接,并将一些数据返回到数组中。当访问index.php时,控制器将访问此函数。然后通过分页将数据输出到html表中 如果我在分页中单击下一页,它就会从模型中获取相同的数组。。但是,由于函数正在重新创建所有sql,因此看起来非常冗余。。我知道这可能是一个基本的oo编程问题,但是如何创建我的模型类,这样我就可以重用数组,而不必每次我想要获取下一块数
<?php
class Pagination_m extends CI_Model {
public $myarray = array();
public function get_data()
{
//sql connection implemented
//Sql query executed
//create an array
//return the array to index.php
return $myarray;
}
public function get_array()
{
//all other pages clicked will just return the created array rather than doing all the database work again..
return $myarray;
}
}
?>
您必须执行分页结构
我认为您可以使用“get_data”方法接收一个参数来控制您的页面,这个参数将更改SQL的限制。从HTML中接收该信息并发送给您的模型。为不带页码参数的每次呼叫准备“获取数据”获取查询的第一页。感谢Rafael的回复,但我并不太担心在这一阶段如何实现分页,而是更担心在应用程序的多个区域共享阵列而不返回数据库。谢谢。所以,我想您希望在多个HTTP请求中使用相同的加载数据。这是不可能的,因为php没有像Java这样的应用程序上下文。要解决这个问题,您需要创建一个缓存文件,并且每次执行http请求时,您的应用程序都会将该数据再次放入阵列中。或者,如果您希望在一次http请求的生命周期内共享该数据,您可以将数组转换为静态变量,或者将携带数据的责任传递给控制器,因为它将是UI和模型之间的中介。