Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中正确创建MVC模型类_Php_Class_Model View Controller_Web Applications - Fatal编程技术网

在php中正确创建MVC模型类

在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 mvc网站

我已经创建了视图、模型和控制器,但是我在正确使用类和对象时遇到了问题

我有一个模型类,它有一个函数来创建到DB的连接,并将一些数据返回到数组中。当访问index.php时,控制器将访问此函数。然后通过分页将数据输出到html表中

如果我在分页中单击下一页,它就会从模型中获取相同的数组。。但是,由于函数正在重新创建所有sql,因此看起来非常冗余。。我知道这可能是一个基本的oo编程问题,但是如何创建我的模型类,这样我就可以重用数组,而不必每次我想要获取下一块数据时都从头开始创建它

这是我的模型类的概要,为了简单起见,我删除了所有与db命令相关的代码,并创建了数组。如何构造类,以便创建一次数组,然后在需要时在应用程序中重用它。提前谢谢

<?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和模型之间的中介。