0

私はCodeigniterとMVCにかなり慣れていないので、これを実現するための最良の方法を見つけるのに少し苦労しています。

一部の教育機関が提供するさまざまなプログラムにユーザーが応募できるアプリを作成する必要があります。ただし、これらの教育機関はすべてアプリ内に存在する必要がありますが、すべてのプログラムで1つのアプリケーションページを共有するのではなく、相互に独立していることを望んでいます。たとえば、教育機関1は、サイトのセクションが自分のプログラムのみを表示して適用することを望んでおり、教育機関2は、サイトのセクションが自分のプログラムにのみ適用されることを望んでいます。

これを達成するための最良の方法は何ですか?機関ごとに個別のコントローラーを作成する必要がありますか?

例えばsitename.com/inst1/apply, sitename.com/inst2/apply

ただし、これらの各コントローラーは、基本的に同じcreate / read / update/etc関数と同じです。この状況でのベストプラクティスは何ですか?ありがとうございました!

4

4 に答える 4

1

機能を適切に提供するフォルダーを作成できます。これはAPIに広く使用されています。

例えば。このようなフォルダ構造にすることができます。

- application/
    - controllers/
        - inst1/
            apply.php
        - inst2/
            apply.php

これにより、のようなURLエンドポイントが得られます。

index.php/inst1/apply
index.php/inst2/apply
于 2012-10-24T22:45:32.883 に答える
0

私はあなたがそれを正しく持っていると思います、あなたはあなたがそれぞれのために引っ張っていたデータを変更することを可能にする各機関のためのコントローラーを作成するでしょう。すべての機能がコントローラー/モデルにあるため、ビューを共有できます。これは、MVCの最も重要な側面の1つであり、これらのレイヤーを分離し、重複することなく必要な場所で必要なものを再利用する機能です。ページをテンプレートとして設定した場合は、さまざまなテンプレートをプルして、機関固有のビューをフィードすることもできます。

于 2012-10-24T20:33:02.257 に答える
0

このためには、おそらく同じコントローラーを使用し、代わりに、ここで読むことができる別のURIセグメントを関数に渡すことでバリエーションを処理する必要があります 。私のcodeigniterアプリケーションでは、各コントローラーまたはモデル内に特定の機能を保持するのが好きです。したがって、次のようになります。

sitename.com/my_controller/my_function/my_argument

コントローラの関数は次のようになります。

public function my_function($argument){
//stuff goes here
}

もちろん、routesファイルを使用してURLを好きなように見せることができます。

于 2012-10-24T22:29:10.903 に答える
0

単一のコントローラーを作成し、それらを区別するためのフラグを作成するだけです。ビューファイルで、このフラグをチェックして、プログラムを表示して適用するかどうかを決定する天気を決定できます。

URLはのようになります。

sitename.com/inst/1/apply, sitename.com/inst/2/apply

注:URLの数字を単語で変更することもできます。より良いseoに。

于 2012-10-25T05:11:15.243 に答える