質問: $pagination; // display the template parent::display($tpl); } }html: <form name="upload" method="post" enctype="multipart/form-data"> <input type="file" name="file_upload" /> <input type="submit" value="upload image" /> </form> それが私が欠けているものだと思うので、モデルのコードを含めませんでしたか?それをコーディングする方法についてはわかりません。モデルに "get"メソッドがいくつかありますが、これは "set"メソッドですか?または、コントローラーから関数を呼び出して、html /ビューからの入力を渡すにはどうすればよいですか?
回答: 開始するには、おそらくこれをすべて行うのが最善です: http://docs.joomla.org/j2.5:developing_a_mvc_component/developing_a_basic_component 。それは多くの情報ですが、それは間違いなくあなたの多くの質問に答えるのに役立ちます。フォームから始めましょう。これをコントローラー関数に向けさせるには、いくつかの方法があります。<form name="upload" method="post" enctype="multipart/form-data"> <input type="file" name="file_upload" /> <input type="submit" value="upload image" /> <input type="hidden" name="option" value="com_component_name" /> <input type="hidden" name="task" value="controller.method" /> <?php echo jhtml::_( 'form.token' ); ?> </form> 2つの非表示の入力をフォームに追加しました。これら2つのフィールドは、ポストされたデータをルーティングします。最初のものはコンポーネントと一致する必要があります。 2番目は、メソッド名のみにすることもできます(ベースにルーティングする場合はcontroller.phpファイル(コンポーネントのルート)、またはこの「ドット構文」を使用して、コントローラーとメソッドを指定する必要があります。 (あなたにとっては、私にとってはベースコントローラーのように見えるので、おそらくuploadでしょう。)最後に追加のphpビットを追加すると、csrfトークンが追加され、csrf攻撃の防止に役立ちます。詳しくはこちらをご覧ください http://docs.joomla.org/how_to_add_csrf_anti-spoofing_to_forms 。このトークンを確認する部分は、すでにアップロード機能の上部にあります。フォーム送信で実際にアップロード関数を実行するようになったので、ファイルを処理する必要があります。入力にjrequestクラスを使用しないでください。これは非推奨であり、まもなく終了します。ここで概説されているようにjinputを使用します: http://docs.joomla.org/retrieving_request_data_using_jinput 。次の行の前のほとんどすべては、おそらく当面のタスクには必要ありません。それは今あなたが本当に必要としないカスタマイズを可能にします:$files = array_map( array($this, 'reformatfilesarray'), (array) $files['name'], (array) $files['type'], (array) $files['tmp_name'], (array) $files['error'], (array) $files['size'] ); 今はjinputを使用しているので、代わりに次のようにできます。$app = jfactory::getapplication(); $files = $app->input->files->get('file_upload'); $ files配列の残りの部分はすべて機能するはずです。 $ filesがファイルの配列であるか、ファイルの単一レベルの配列であるかを確認する必要があります。後者の場合、foreachは必要ありません。この質問にはこれで十分です。質問が増えることはほぼ保証できます。この質問はすでにかなり広いので、これについて少しずつ質問しないでください。代わりに、発生している特定の問題について新しい質問を自由に開いてください(すでに多くのリソースがあるため、これらの問題をより具体的に検索します)。