アイテムのリスト2〜3アイテムをコントローラーのメソッドに渡す良い方法は何ですか?私はURLを使用することを考えていました....次のように:
http://myserver/myapp/mycontroller/mymethod/parm1/parm2/listitem1/listitem2/listitem3
これを行うためのより良い方法はありますか?このデータはフォームからではなく、データベースクエリからのものであり、私はそれを使用してハイパーリンクを構築しています。
気になるのは、このURLを解析しているときに持っているアイテムの数が事前にわからないことだけだと思います。
何も得られないか、3つすべてまたはその間にある値が得られる可能性があります。したがって、このURLを解析する必要があるメソッドは、uri-> segment()がfalseを返すまでループを続け、最初の空のuriセグメントにヒットしたことを示します。任意の提案をいただければ幸いです。
ありがとう
編集1:
明確でない場合に備えて、私のモデルはデータベースからデータを取得しており、リストも作成します。問題は、実際には、不確定な数のURIセグメントを解析することです。これを行うためのより良い方法があるかどうか疑問に思っています。ありがとう!
編集2
これが私のMVCアプリを理解するのに役立ついくつかの情報です。私の問題は、誰が何をしているのかという点でコードを整理した方法ではないと思います。しかし、念のために...
モデルにmethodAがあり、データベースにクエリを実行して、コントローラーのlistitem1、listitem2、listitem2に返します。次に、コントローラーは次のようなURLを表す文字列を作成します。
http://myserver/myapp/mycontroller/methodB/parm1/parm2/listitem1/listitem2/listitem3
次に、ビューは上記のURLを使用してハイパーリンクを表示します。ユーザーがこのハイパーリンクをクリックすると、methodBが呼び出されます。methodBでは、アイテムの数がわからないため、最初のfalseに到達するまで、すべてのセグメントをループします。
なぜこれを行う必要があるのか/私がしていること...ここにいくつかの背景情報があります:トランクと見なされるスイッチのポートのリスト(変更してはならないポート)をデータベースに照会します。これがメソッドAが行うことです。
methodBはスイッチに対してコマンドを実行し、大量のデータを返します。methodBからのデータを表示するビューにより、エンドユーザーはスイッチにさらに変更を加えることができます。methodBからのデータを表示する前に、methodAから取得したポートのリストを除外して、改ざんされないようにします。
お役に立てれば。
編集3
methodAとmethodBは、2つの異なる目的を果たすため、両方が必要です。methodAは、データベースのポートに関する要約データを表示します。methodAは、ドキュメントを表示する関数と考えてくださいスイッチについて。次に、methodAのビューは、実際のスイッチと通信するための「ライブ」リンクを提供します。これが、methodBの出番です。methodBは、これらのライブリンクのいずれかによってトリガーされ、メソッドAと同様にポートのリストを取得します。実際のものを表し、ポートに関するユーザー定義の情報は含まれていません。methodBをデータベースと通信させ、表示する前にそのデータをフィルタリングすることはできると思いますが、これら2つの関数を別々のAPIとして扱いたい場合は...別名-関数の1つのセットはデータベースからデータを取得し、もう1つのセットはスイッチと通信するためのツール...-それなら私は一方が他方と直接話したいとは思わない。GUIでそれらを結び付けてほしい。実際、私はデータベースインターフェイスと呼ぶもののために2つの別々のモデルとコントローラーを作成しました。次に、スイッチインターフェイス。これまでのところ、フォームのアイデアが最もエレガントなソリューションだと思います。読んでくれてありがとう。