2017-05-05 27 views
0

Laravel 5.4で雄弁な関係がどのように機能するのかちょっと混乱しています。 私は私のユーザモデルと「hasManyの」関係を持っている学校のモデルを得た:Ellquent Relationships、モデルのリンク(Laravel 5.4)

public function users() 
{ 
    return $this->hasMany('App\User'); 
} 

ユーザーはいえ、学校にリンクさせる必要がないので、私はbelongsToの(学校)の機能を入れていません私のユーザーモデルで。

ユーザーを作成するときにユーザーを学校にリンクする方法と、特定の学校のすべてのユーザーをビューに表示させるにはどうすればよいですか?

+0

私はここから始めます:https://laravel.com/docs/5.4/eloquent-relationships。ドキュメントは、基本的な概念を歩き回るかなり良い仕事をしています。 – jackel414

答えて

0

ユーザーが1つの学校にしか所属できない場合、school_id列をusersテーブルに追加するのが最も簡単な方法です。必須ではないので、nullにすることができます。これにより、$school->usersを実行して、特定の学校のユーザーリストを取得することができます。

belongsToの関係をユーザーモデルに追加することもお勧めします。$user->schoolを使用して、適用可能な場合にユーザーの学校を取得することができます。一部のユーザーにとってはnullになることは大丈夫です。

+0

"$ school-> users"さんは働くことができません。私は$ school = School :: find(1)を試しました。 $学校 - >ユーザー;コンパクトで見るためにそれを渡しますが、動作しません。このエラーが発生します: "HasRelationships.php行のFatalThrowableError 487: クラス 'App \ Users'が見つかりませんでした。 - 自分のユーザーモデルにbelongsTo(学校)を追加しました。 –

+0

あなたのコードのどこかに 'App \ Users'と定義されていますか?私はそれが 'App \ User'(単数)でなければならないと思う。 – jackel414

+0

ええ、私は私の学校関係で "ユーザー"と間違っていました。私はかなり疲れている、私の悪い! :S –