2011-07-29 10 views
0

を作成することができ、管理者モデルI持って次のモデル:Students, Teachers, AdministratorCakePHPの:他のモデル

は私がやりたいことは、私は新しい作成し、すべての生徒と教師をリストアップし、それらを編集することができ、管理メニューを、持っていますあまりにも。

は何これを達成するための最良の方法だろうか?モデルを管理コントローラにインポートしますか?

答えて

1

@Anhによると、最も直接的な方法は、学生と教師のコントローラにそれぞれadmin_アクションを持たせることです。任意のコントローラから任意のモデルにアクセスできます。学生のコントローラに教師をリストしたい場合やその逆の場合は、そうすることができます。
デフォルトでは、コントローラは同じ名前のモデルのみをインポートします。そのモデルが他のモデルに関連付けられている場合は、$this->Student->Teacherのような関連付けを介して他のモデルにアクセスできます。
あなたがコントローラで、多くの場合、これをやろうとしている場合は、単に$usesプロパティを使用してコントローラに直接必要なモデルをロード:

class StudentsController extends AppController { 
    public $uses = array('Student', 'Teacher'); 
} 

は今、あなたは直接、両方のモデルを用意して。

0

プレフィックスルーティングを使用します。教師コントローラで、教師の記録を追加/編集/削除できるadmin(admin_index()、admin_add()など)のアクションを作成します。学生のコントローラと同じです。

編集:コントローラは、特定のモデル(および関連するモデル)を操作できる場所です。あるページに生徒と教師の両方が必要な場合、これらの2つのモデルは互いに関連していますか?待って、彼らは両方のウェブサイトのユーザーですか?あなたが望むものは次のとおりです:管理者はCRUDユーザーができますか?したがって、管理者/ユーザー/インデックスページにすべてのユーザーを表示させることができます(ここでは、実際にこれらのモデルを使用していることを認識しているため、問題が新しいdbデザインにつながることがあります)。

いずれか、またはあなたが選んだコントローラーのloadModelで、または$ usesを使うか、TeacherとStudentの間で任意の関係を作ることで、すばやく汚れた修正を行うことができます。

+0

管理者のインデックスアクションで学生と教師のリストを取得したい場合はどうすればよいですか?私はAJAXでそれらをロードできると思いますか? – AlexBrand

+0

このリンクを見て、複数のモデルメソッドを1つのコントローラに読み込む方法を説明します - http://nuts-and-bolts-of-cakephp.com/2008/12/16/how-to-build-a -dashboard-for-your-application-in-cakephp / – Stoosh

関連する問題