2

カスタムビルドのレポート環境を Laravel 4 に移行しようとしています。現在、200 以上のレポート ページがあります。組織上の理由から、それらを大規模なディレクトリ構造に配置しました。レポート ディレクトリは次のようになります。

reports
  - main1
      - sub1
         - deep1
         - deep2
      - sub2
         - deep3
            - deeper4
.. etc

最も深いレベルには、呼び出すメソッドを持つコントローラーがあります。のような URL を使用したいと思い/reports/main1/sub1/deep1/actionます。

すべてのレポート要求を適切なコントローラーに送信するルートを設定するにはどうすればよいですか? 残念ながら、深さは可変であり、複雑になっています。

編集

ID を介してロードできるレポート クエリだけではありませんが、各宛先は、ユーザー入力に基づいて多数のレポートをレンダリングするためにあらゆる種類のことを実行できる php ファイルです。そのため、整理しておくために、すべてを大規模なディレクトリ構造に配置しています。私が求めているのは、200 のパスを指定することなく、ディレクトリ ツリー内の適切なコントローラにルーティングする方法があるかどうかです。

4

1 に答える 1

1

アプリで URL (ディレクトリ パス) がどのように機能するかについて、さらに詳しい情報が必要だと思います。URL が特定のレポートを指しているようです。レポートごとに 1 つの ID を持つ代わりに、レポート識別子は URL パスですか?

ここに答えがあります:

正規表現を使用して、可変長のルートを照合できます。

Route::get('reports/{path}', 'ReportsController@report')
    ->where('path', '[A-Za-z0-9\/\-\_]');

その正規表現が次のような URL と一致する場所:

reports/some/much_deeper/path-7

コントローラー メソッドreport($path)には、$path使用可能な変数があります。

于 2013-07-12T16:48:13.850 に答える