0

クライアント向けのサイトを作成していて、コード イグナイターを使用することにしました。

このサイトには基本的に、デザイナー用と営業チーム用の 2 つのバックエンドがあります。したがって、ログイン後、ユーザーは次のいずれかにリダイレクトされます

  • mysite.com/sales/
  • mysite.com/design/

たとえば、営業チームは注文、コンテナー、製品を表示できるため、これらのそれぞれにコントローラーが必要です。

  • mysite.com/sales/orders/

営業担当者は、特定の注文を表示、編集、削除できる必要があります...

  • mysite.com/sales/orders/vieworder/235433

基本的に私の問題は、遊ぶのに十分な URL セグメントがないことです。

私の問題を解決するための私の考え

  • 注文、コンテナ、製品クラスを削除し、それらのすべてのメソッドを販売クラスのメソッドとして作成しますが、これは多数のメソッドとすべてのモデルのロードを意味するため、無意味に思えました.

  • 販売/デザイナー クラスを削除し、セッション データに格納されているユーザー タイプに基づいて、各種類のユーザーがアクセスできるものを制御します。

  • 余分な URL セグメントを持つ方法は?

アドバイスをいただければ幸いです。プロジェクトに 3 週間もかかりたくないし、最初から間違っていたことに気づきたくありません。

4

3 に答える 3

2

フォルダを使用します。

/application/呼び出されたサブフォルダーを作成するとsales、そこにさまざまなコントローラーを配置できます。

/application/
    /sales/
      orders.php /* Controller */
    /design/

次に、メソッドなどorders.phpを配置するvieworders($id)と、 でアクセスできるようになりますdomain.com/sales/orders/vieworders/id

/models/およびにサブフォルダを作成して/views/、ファイルを整理することもできます。

現在、アクセス制御は別のものであり、使用している認証システムにより依存しています。

于 2011-07-13T18:29:41.557 に答える
0

ルーティングクラスを調べる必要があるようです。汚い解決策かもしれませんが、sales/(:any) を sales_$1 のようなものに再ルーティングすると、sales_orders のような名前のコントローラーを作成することになります。デザイン部分も同様。

(FYI:$routing['sales/(:any)'] = 'sales_$1';トリックを実行する必要があります。application/config/routing.php を参照してください)。

于 2011-07-13T18:31:52.333 に答える
0

ユーザー/デザイナーに特権を与えます。たとえば、ユーザー テーブルの列を指定し、関数の開始時にユーザーの権限を確認してから、それを防止または実行します。

これは私がそれを行う正確な方法です。

于 2011-07-13T18:26:00.433 に答える