3

似たようなトピックがいくつかあることは知っていますが、それらのほとんどを読んで試しましたが、まだこれを行う方法がわかりません。

Joomla 2.5でコンポーネントを作成しましたが、これまでのところ機能しています。さまざまなビューがあり、controller.php を使用してビューをロードできます。ビューの 1 つは、私のデータベース (チームに関するデータ) からのテーブルを示しています。

ここで、データベース テーブルをフォームとして表示する同じビューの別のレイアウトを作成して、コンテンツを変更できるようにしたいと考えています。

それはファイル構造です:

views/
- team/ - - tmpl
/
- - - default.php
- - - modify.php
- - view.html.php

それは view.html.php ファイルの外です:

...
// Overwriting JView display method
function display($tpl = null) {

    ...

    $this->setLayout('modify');
    echo $this->getLayout();
    // Display the view
    parent::display($tpl);
}

setLayout、$tpl = ...、default_modify.php などのさまざまな組み合わせを試しましたが、常にデフォルトのレイアウトになるか、「レイアウトの変更が見つかりません」などのエラーが発生します。

.../index.php?option=com_test&task=updateTeams でサイトを読み込みます

そして、controller.php は次のようになります。

function updateTeams(){
    $model = $this->getModel('teams');
    $view = $this->getView('teams','html');
    $view->setModel($model);

    $view->display();
}
4

3 に答える 3

5

私は同様の問題を抱えていました。ある種のユーザープロファイルビューを作成し、新しいモデルを作成することなくフィールドを編集できるようにしたかったのです(同様の機能があり、冗長性が嫌いです...)。私にとってうまくいったのは、次のようにレイアウトを呼び出すだけです。

index.php?option=com_mycomponent&view=myview& layout=edit (あなたの場合、「編集」は「変更」になります)

これを行うために、view.html.php には触れませんでした (最初は触れましたが、そうする必要はありませんでした)。また、コントローラーを使用する必要もありません。変更ビューをロードする場合は、変更レイアウトにリンクするボタンを通常のビューに追加するだけです。他に何も変更する必要はありません。

私はたまたまそれについてブログ記事を書いたことがあります。必要に応じてチェックしてください

お役に立てれば。

于 2013-09-17T09:01:58.377 に答える