2017-07-31 7 views
0

私のシステムでは、user,teacher、およびguardianのログインが必要です。私はトピックに関する多くの研究を行い、人々の多くはuser type機能の利用に関する話をしました。しかし、私はそれが私のために、または多分うまくいくとは思わない私はそれがそのように動作するように理解していませんユーザー、保護者、教師のログイン認証

私が教師を作成しているときに心配していることは、教師が複数の科目やクラスを教えることができるということです。つまり、教師と教科の間には多少の関係が存在します。私が教師を挿入するときはいつも、彼/彼女が教えるクラスを指定しなければなりません。 また、保護者は多くの生徒に関連しています。保護者を挿入するときは、保護者が関係する生徒を指定する必要があります。

すべてのユーザー(管理者、保護者、スタッフ、教師)の個別の移行、モデルコントローラ、およびビューを作成できますが、問題の効率的な解決策ではないことがわかります。問題に対処する他の選択肢は何ですか?

さまざまな種類のユーザーの認証に使用する単一のログインを持つことができ、がユーザーの種類に固有のビューを返すこの問題に対処する他の方法は何ですか。

管理者が先生と保護者を挿入すると、そのユーザーアカウントが生成されるのでしょうか? 注目をいただきありがとうございます!

答えて

0

ユーザ(任意のタイプのユーザ)を作成するときは、ユーザテーブルuser_typeにカラムがあるように、ユーザテーブルのカラムでタイプを設定できます。

この列は、管理者のフラグ値1、先生の2、親の3などのように機能します。 > USER_TYPE

- あなたのユーザーがあなたのセッションでそのデータを設定することができたり、laravalでAUTHを使用する場合は簡単にあなたがこの認証のよう をしたいあなたのコントローラ、ビュー::ユーザー()でそれを得ることができますログインしますいつでも今

だから私はお互いに比較する何かを持っているので、ユーザーが自分のタイプに依存する必要があるものを簡単に設定することができます。

すべてのユーザーがこの方法よりも型だけに依存する場合は十分ですが、異なるユーザーまたは異なる種類のユーザーにさまざまなアクセス許可を設定する場合は、アクセス制御システムが必要です。今すぐ利用可能な多くのパッケージがあります

https://github.com/Zizaco/entrust私はこれが良いと感じています。

0

UserUserの間にmanyToMany関係を設定する必要があります。

次に、ピボットテーブルの行が存在するかどうかを確認して、ユーザーが学生か保護者かを確認できます。 User - Subjectと同じです。

たとえばピボットテーブルがguardian_studnet呼び出すことができ、それはその中の2つのフィールドを有することができる:guardian_idstudent_id両方がusersテーブルidカラムを指すであろう。

このシナリオでは、これはどのように必要なのかわかりませんが、同じユーザーが学生と保護者になる可能性があります。

ピボットテーブルのフィールドにインデックスを付けることを忘れないでください。Userモデルにteacherstudentブール値を追加できます。しかし、これは、関係の状態が変わるたびにこのフィールドを更新する必要があります。しかし、利得については確信していません。

ドキュメントhereをご覧ください。

+0

'User'と' User'の間にmanyToMany関係を設定する必要があるということを意味しますか? –

関連する問題