【问题标题】:Creating a MVC Model Class in php properly在 php 中正确创建 MVC 模型类
【发布时间】:2017-05-17 03:10:41
【问题描述】:

我正在尝试创建自己的 php mvc 网站。

我已经创建了视图、模型和控制器,但是我无法正确使用我的类和对象...

我有一个模型类,它具有创建与数据库的连接并将一些数据返回到数组中的功能。该函数在访问 index.php 时由控制器访问。然后我将数据抽出到带有分页的 html 表中。

如果我在我的分页中单击下一页,然后它会从模型中获取相同的数组。但是因为该函数再次重新创建所有 sql 似乎非常多余。我知道这可能是一个基本的 oo prgamming 问题但是如何创建我的模型类,以便我可以重用数组,而不必每次我想抓取下一个数据块时从头开始创建它......

这是我的模型类的大纲,为了简单起见,我删除了所有与 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;
        }

}

?>

【问题讨论】:

    标签: php class model-view-controller web-applications


    【解决方案1】:

    你必须做分页的结构。

    我认为您可以通过“get_data”方法接收一个参数来控制您所在的页面,该参数将更改您的 SQL 的 LIMIT。从您的 HTML 接收该信息并发送给您的模型。在没有页码参数的情况下为每次调用准备“get_data”获取查询的第一页。

    【讨论】:

    • 感谢 Rafael 的回复,但我不太担心现阶段如何实现分页,而是更关心在应用程序的多个区域之间共享数组而不返回数据库。谢谢。
    • 所以,我想你想在多个 HTTP 请求中使用相同的加载数据。这是不可能的,因为 php 没有像 Java 这样的应用程序上下文。要解决这个问题,您需要创建一个缓存文件,并且每次执行 http 请求时,您的应用程序都会将该数据再次放入数组中。或者,如果您想在一次 http 请求的生命周期内共享该数据,您可以将数组转换为静态变量或传递为您的控制器携带数据的责任,因为它将成为 UI 和您的模型之间的中介。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2019-08-21
    • 2012-12-09
    • 2011-07-02
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    相关资源
    最近更新 更多