PHP laravel框架模使用模型实现表对表关联

首先建立三个表:

一、用户表(members)

id字段username字段
1zhangsan
2lisi
3smallRedHat
4wangwu
5laowang

二、角色表(roles)

id字段name角色名称字段
1超级VIP会员
2VIP会员
3普通用户

三、关联表(roleMembers)

id字段member_id字段role_id字段
111
222
333
443
552

建立好表之后,创建模型,模型目录:app/Models

Member.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Member extends Model
{
    use HasFactory;

    public function roleMember(){
                //进行关联 
                //Role::class roles角色表的模型
                //RoleMember::class roleMembers关联表的模型
                //member_id 用户ID
                //role_id 角色ID
        return $this->belongsToMany(Role::class,RoleMember::class,'member_id','role_id');
    }
}


Role.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    use HasFactory;

    public function roleMember(){

                //进行关联 
                //Member::class members角色表的模型
                //RoleMember::class roleMembers关联表的模型
                //role_id 角色ID
                //member_id 用户ID
        return $this->belongsToMany(Member::class,RoleMember::class,'role_id','member_id');
    }

}


RoleMember.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class RoleMember extends Model
{
    use HasFactory;
}


模型创建好之后,在Controller里面进行调用;Controller目录:app/Http/Controllers

IndexController.php

<?php

namespace App\Http\Controllers;

use App\Models\Member;
use App\Models\Role;
use Illuminate\Http\Request;

class IndexController extends Controller
{
    public function store(){

        //查询用户ID为1的角色
        $member = Member::find(1);
        //输出的是Object
        dd($member->roleMember);

         

        //查询用户ID为1的角色
        $member = Member::find(1);
        //输出的是Array数组
        dd($member->roleMember->toArray());


        //查询角色为1的用户
        $role = Role::find(1);
        //输出的是Object
        dd($role ->roleMember);


        //查询角色为1的用户
        $role = Role::find(1);
        //输出的是Array数组
        dd($role ->roleMember->toArray());


    }
}


定义路由进行访问即可看到输出的数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值