我是Laravel的新手。
我在默认的permission
表中添加了一个名为User
的新列。它是与p_id
表Permissions
中的(user.permission = permissions.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');
}
在Controller中,如何查询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
一样简单?
非常感谢你。
答案 0 :(得分:1)
您的权限模型关系不正确。
[应用\许可]
public function users() {
return $this->hasMany('App\User', 'permission');
}
答案 1 :(得分:0)
您可以在权限模型中查看此内容
App/Permission
protected $table = 'Permission';
protected $primaryKey = 'p_id';