私はLaravelを新しくしました。Laravel 5.2 Auth :: User Foreign Key Join Query
デフォルトのUser
テーブルにpermission
という名前の新しい列を追加します。そして、それはPermissions
テーブル(user.permission = permissions.p_id)
にp_id
に関連する外部キーです。
あるユーザーは、アクセス権のグレード(p_id
)に属しているが、アクセス許可のグレードは、多くのユーザーに属していたことができます。
[DB FIELDS]
user
- ...
- permission
permission
- p_id
- p_permission
- p_title
そして、私の雄弁モデルの定義
コントローラーで[App\Permission]
public function user() {
return $this->hasMany('App\Permission', 'p_id');
}
[App\User]
public function permission() {
return $this->belongsTo('App\Permission', 'permission', 'p_id');
}
は、どのように私はp_title
または他のpermission.*
フィールドを照会していますか?私は
echo Auth::User()->permission->p_title;
echo User::find(1)->permission->p_title;
の両方を試してみた
はリターンTrying to get property of non-object
、
そして
echo Auth::User()->with('permission')->get();
戻り、すべてのユーザーです。 (私が欲しいのは、ログインしたユーザーです)
Auth::User()
には、Auth::User()->p_title
のように外部キーを照会する方法はありますか?
ありがとうございました。
に私はこのように私のコードを変更しましたが、機能しません。 'Auth :: User() - > permission-> p_title'がまだ返されます '非オブジェクトのプロパティを取得しようとしています ' – Benyi
'tinker'を使ってデバッグしようとしませんか? '$ u = App \ User :: first()'、次に '$ u-> permission'を試してみてください。あなたが何かを得るかどうかを見てください。 – linuxartisan