2

Silverstripe Framework / CMS は初めてです。./mysite/code/Page.phpコントローラーおよび./themes/simple/...テンプレートディレクトリとして表示されます。管理画面にログインして新しいtestページを追加しました。URL付きのWebサイトにメニューがhttp://example.com/test表示され、コンテンツが表示されます。

だから私が知りたいのは、新しいコントローラーにアクセスする方法Download.ssです。管理パネルhttp://example.com/download/123/に新しいページを追加せずに URL にアクセスしたい。downloadありがとうございました。

4

1 に答える 1

5

まず、.ss拡張子の付いたファイルは、コントローラではなくテンプレート ファイルです。

mysite/code/Download.phpextendsで新しいクラスを作成しますController

class Download extends Controller {
    public function index() {
        // Automatically handles URLs like http://example.com/Download
    }

    public function exampleaction() {
        // Automatically handles URLs like http://example.com/Download/exampleaction
    }
}

その後routes.yml、ディレクトリに新しいファイルを追加して、新しいコントローラーmysite/_configの関数が への呼び出しを処理するように指定します。indexhttp://example.com/download/123

---
Name: downloadrules
---
Director:
  rules:
    'download/$ID': Download

これで、サンプル URL の '123' 部分が関数$this->request->param('ID')内と同様にアクセス可能になりindexます。

これで、次のことができます。

class Download extends Controller {
    public function index() {
        $fileID = $this->request->param('ID');
        // Do your thing.
    }
}

このようなドキュメントはhttp://doc.silverstripe.org/framework/en/reference/directorにあります

于 2012-11-13T07:02:31.670 に答える