首页 文章

在laravel 5.2中加入关于身份验证的表组

提问于
浏览
0

我正在使用laravel 5.2开发一个应用程序 . 现在我需要的是我有两个表,一个是用户,第二个是组 . 组表是users表的父表,其中groups_id是具有组表(group_id)的外键的列 . 现在登录时我使用的代码如下:

$users = User::leftJoin('groups', 'groups.group_id', '=', 'users.groups_id')->where('email', base64_decode(base64_decode(trim($request->input('user_login')))))->first();

我在哪里使用join来加入groups表 . 但它正在执行完美但不会在会话中显示数据(Auth :: user()) . 所以请建议我如何在会话中添加第二个表,但只加入具有外键记录的行 . 谢谢 .

1 回答

  • 0

    您已在此用户模型中定义了一个关系

    class User extends Authenticatable
    {
      ......
    
      /*
       * Relation to Group Model 
       *
       */
      public function group()
      {
        return $this->belongsTo('App\Models\Group','group_id','group_id');
      }
    
      ......
    }
    

    现在,您可以通过这些代码随时随地访问创作的用户组

    auth()->user()->group()
    

    or

    $user = User::find($id);
    $user->group();
    

    要从组中检索用户,您可以在组模型中定义此关系的反向,如下所示

    class Group extends Mdoels
       {
         ..........
    
         public function Users()
         {
              return $this->hasMany('App\Models\Users','group_id','group_id');
         }
    
         ..........
       }
    

    你可以在docs找到更多的信息here

相关问题