如何将参数/参数传递给模型

时间:2013-04-01 18:14:32

标签: model-view-controller joomla

在教程之后如何创建一个joomla 2.5组件,我坚持将view.html.php中的参数传递给我的模型。

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

我的TableData模型希望获得以下参数

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

2 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:2)

这只是David回答的补充。

因为大多数数据通常来自POST / GET方法,具体取决于您的应用程序,您可能需要查看来自loadFormData JModelFormpopulateState的loadFormData()是如何被覆盖的在特定的Joomla组件中。

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

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