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 メソッドから取得されるため、アプリケーションによっては、特定の Joomla コンポーネントで loadFormData() がどのようにオーバーライドされるloadFormData JModelFormかを調べる必要がある場合があります。populateState

基本的にモデルの状態は、JInput を使用して POST データから直接設定されます。

また、ルールとかではありませんが、メソッドに渡すパラメータは最大3つです。柔軟性のために、メソッド シグネチャを変更せずに後で拡張できる配列を渡すことをお勧めします。

于 2013-04-02T20:52:55.590 に答える