我还在学习制作一个Joomla组件,但是我遇到了一个在目前为止我读过的任何教程或书中找不到答案的情况。 我有一个模型(在models / weather.php中),它有一个方法getData()。从View(在views / view.html.php中)调用此方法,这将从我的数据库中获取一系列记录。 然后使用foreach循环在我的布局(views / tmpl / default.php)中迭代这个记录范围,如下所示:
if ($this->item) {
foreach ($this->item as $item) {
//...
}
}
我需要做的是在评论点(// ...)我想根据$ item-> id的值从另一个表中检索一些其他记录。我的问题是如何根据最佳实践做到这一点?我想我可以在那里打开数据库并获取我需要的数据,但我怀疑在基于MVC的程序中我需要将此查询放在函数或方法中?我在哪里放这个以及如何访问它?一个例子的链接将非常感激。
解答: 我是个白痴。显然我可以从我的布局中的视图中调用任何方法,在该方法中我可以访问我的模型(我可以在其中创建查找函数)。有时候我的思维过于简单地“看”'OOP。
答案 0 :(得分:0)
您可以在其他模型中编写一个方法,从中提取数据,例如getMyItem()。然后在您的视图中,您需要获得类似
的模型 $model = & JModel::getInstance('ModelName','ComponentNameModel'); //it will look for ComponentNameModelModelName
$myitem = $model->getMyItem($item->id);
编写逻辑以在模型的方法中获取Myitem
答案 1 :(得分:0)
在布局中处理数据是不好的做法(default.php)。布局应仅通过视图(view.html.php)显示已从模型中检索和处理的数据。为什么不在模型中添加其他方法并从getData
调用该方法?会好得多。