gpt4 book ai didi

php - 如何创建特定对象的数组?

转载 作者:行者123 更新时间:2023-12-04 07:11:03 26 4
gpt4 key购买 nike

好吧,我是 PHP 中 OOP 的新手,我正在尝试用它编写一个站点。该站点是一个基本的 Flash 游戏站点,并具有用于跟踪游戏的类别。我的第一步是创建一个基本的 MVC 设置并列出所有类别。问题是我不知道如何创建一个包含所有类别的数组。我可以将它添加到 Controller 吗?我应该向模型添加新方法吗?让我知道,代码在下面。

index.php ( Controller )

<?php
require_once 'database.php';
require_once 'models/category.php';

if (isset($_GET['page']))
{
}
else
{ //display home page
require_once 'views/home.php';
}
?>

模型/category.php (模型)
<?php
class Category
{
private $id,$name;

function __construct($id)
{
$category_query = $database_connection->prepare('SELECT id,name FROM categories WHERE id=?');
$category_query->execute(array($id));
$category = $category_query->fetch();

$this->id = $category['id'];
$this->name = $category['name'];
}

function get_id()
{
return $this->id;
}

function get_name()
{
return $this->name;
}
}
?>

意见/home.php (看法)
List of all categories:
<ul>
<?php foreach ($all_categories as $category) { ?>
<li><?php echo $category->get_name(); ?> (ID: <?php echo $category->get_id(); ?>)</li>
<?php } ?>
</ul>

最佳答案

很简单,您只是缺少将它们组合在一起的胶水。这通常被描述为“业务逻辑”。您目前拥有的“模型”实际上是您的数据存储层。您的模型需要使用它来将它需要提供给 View 的内容返回给 Controller 。

在代码中,您有多种选择。一种是让 Controller 使用您必须组装 View 想要使用的数组的数据类。如果没有其他 Controller 需要这样做,这是最好的。另一种解决方案是添加一些模型代码来做到这一点。这使其他 Controller 可以调用相同的模型来获取相同的数据,但是如果您有其他需要相同过程的类,您将重复代码。第三种解决方案是扩展您的数据模型以提供集合 View 。然后模型代码成为 Controller 想要什么样的集合和向数据模型询问它之间的简单转换层。留在 Controller 中甚至可能很简单。

关于php - 如何创建特定对象的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com