3

按照教程如何创建 joomla 2.5 组件,我坚持将参数从 view.html.php 传递给我的模型。

$items = $this->get('TableData');

我的 TableData 模型会期望得到以下参数

 public function getTableData($table, $index_column, $columns) {}
4

2 回答 2

8

您不能使用视图的 get 方法执行此操作。相反,您必须将模型抓取到视图中并直接在视图中调用该函数:

$model = $this->getModel();
$items = $model->getTableData($table, $index_column, $columns);

或者,您可以在模型中创建不同的入口点,以便能够从状态信息或预设中计算出这些输入选项。许多人会争辩说,这将导致更好的应用程序设计,因为使用我上面的代码将模型逻辑放入视图中。

于 2013-04-01T18:39:09.647 回答
2

这只是大卫答案的补充。

因为大多数数据通常来自 POST / GET 方法,根据您的应用程序,您可能需要查看 loadFormData() 是如何从特定 Joomla 组件中获取loadFormData JModelForm或被覆盖的。populateState

基本上,模型的状态是使用 JInput 直接从 POST 数据设置的。

此外,虽然这不是规则或其他东西,但我最多可以传递 3 个参数给方法。为了灵活性,我宁愿传递一个可以在不更改方法签名的情况下稍后扩展的数组。

于 2013-04-02T20:52:55.590 回答