Laravel 5.5を実行しているプロジェクトがあり、データベースに次のテーブルがあります。Eraquentを使ったLaravelの関係は本当に正しいですか?
USERS (
ID,
NAME,
PERMISSION_ID
)
PERMISSIONS (
ID,
NAME
)
私は間違っていないよ場合は、権限を持つUSERS関係は、(ユーザーが少なくとも1つの許可と1の最大値を有する)1.1であるので、OneToOne関係です。
私のユーザモデルで私は以下の関係を作った。
class User extends Authenticatable
{
public function permission() {
return $this->hasOne('App\Models\Permission');
}
}
しかし、このようにして、Laravel/EloquentはPERMISSIONSテーブルの関係を探します。私はすでにLaravelのマニュアルを参考にして、私はhasOneの方法でのForeignKeyとLocalKeyを指定することができることを見てきた
SELECT * FROM PERMISSIONS WHERE PERMISSIONS.USER_ID = 1
:に似た選択を生成します。これは関係を解決します。
しかし、デフォルトでは、PERMISSIONSテーブルの情報をフェッチするのは本当にLaravel/Eloquentにとって正しいですか?正しいものは、PERMISSION_IDのUSERS表を見ることではありませんか?ため、私はhasOneのとbelongsToの違いを研究しアレクセイMezenin
の応答に
@Edit
。外部キーが正しいものでhasOneのを使用することです他のテーブルの上にあるとき、私は理解し何から
What is the difference between BelongsTo And HasOne in Laravel
:そして、私は次のような答えを見つけました。
外部キーがテンプレートのテーブルにある場合、正しいものはbelongsToを使用することです。
私は感謝アレクセイMezeninは、時間の横にこれらの詳細にでチューニングし