Laravel 5.2 Auth ::用户外键加入查询

时间:2016-08-13 08:47:33

标签: php laravel laravel-5 eloquent laravel-5.2

我是Laravel的新手。

我在默认的permission表中添加了一个名为User的新列。它是与p_idPermissions中的(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一样简单?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

您的权限模型关系不正确。

[应用\许可]

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

答案 1 :(得分:0)

您可以在权限模型中查看此内容

App/Permission

protected $table = 'Permission';
protected $primaryKey = 'p_id';