首页 > 其他分享 >Lumen框架 之ORM

Lumen框架 之ORM

时间:2023-11-11 10:55:23浏览次数:33  
标签:框架 auths auth class admin ORM role Lumen id

一、文档

https://learnku.com/docs/laravel/6.x/eloquent-relationships/5177#d9e83d

二、实例

1、表结构

admin表

role表

auth表

role_auth表

2、模型

admin.php

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2023/11/11 0011
 * Time: 9:50
 */

namespace App\Models;


use Illuminate\Database\Eloquent\Model;

class Admin extends Model
{
    protected $table = 'admins';

    public function role()
    {
        return $this->belongsTo(Role::class, 'role_id', 'id');
    }
}

role.php

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2023/11/11 0011
 * Time: 9:51
 */

namespace App\Models;


use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    protected $table = 'roles';

    public function admins()
    {
        return $this->hasMany(Admin::class, 'role_id', 'id');
    }

    public function auths()
    {
        return $this->belongsToMany(Auth::class, 'role_auths', 'role_id', 'auth_id');
    }
}

auth.php

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2023/11/11 0011
 * Time: 10:18
 */

namespace App\Models;


use Illuminate\Database\Eloquent\Model;

class Auth extends Model
{
    protected $table = 'auths';

    public function roles()
    {
        return $this->belongsToMany(Role::class, 'role_auths', 'auth_id', 'role_id');
    }
}

3、获取数据

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2023/11/11 0011
 * Time: 9:58
 */

namespace App\Services;


use App\Models\Role;

class RoleService
{
    /**
     * @param $id
     * @return array
     */
    public function getAdminsAndAuthByRoleId($id)
    {
        return Role::with('admins')->with('auths')->where('id', '=', $id)->first()->toArray();
    }
}
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2023/11/11 0011
 * Time: 9:57
 */

namespace App\Services;


use App\Models\Admin;

class AdminService
{
    /**
     * 获取管理员详细信息
     * @param $id
     * @return array
     */
    public function getAdminInfoById($id)
    {
        return Admin::with('role')->where('id', '=', $id)->first()->toArray();
    }
}

4、数据结果

$admin = $adminService->getAdminInfoById(1);
var_dump($admin);

 

$role = $roleService->getAdminsAndAuthByRoleId(2);
var_dump($role);

 

标签:框架,auths,auth,class,admin,ORM,role,Lumen,id
From: https://www.cnblogs.com/yang-2018/p/17825646.html

相关文章

  • Lumen框架 之设置cookie
    一、配置1、找到同版本的laravel下的\vendor\laravel\framework\src\Illuminate\Cookie目录下的文件拷贝到lumen的\vendor\illuminate\cookie目录下二、使用$cookie=\Symfony\Component\HttpFoundation\Cookie::create('login_user',$login_user,time()+3600); ......
  • 开发指南,自研关键字驱动框架
    开发指南环境准备安装Python,3.8以上版本安装poetry包管理工具,pipinstallpoetry克隆代码,gitclonehttps://github.com/dongfanger/tep准备就绪,撸起袖子干!目录结构distpoetrybuild生成目标文件,用于发布pypitep核心代码tests测试代码utils工具包......
  • wxFormBuilder + python + wxWidget
    -------------#-*-coding:utf-8-*-#############################################################################PythoncodegeneratedwithwxFormBuilder(version3.10.1-0-g8feb16b3)##http://www.wxformbuilder.org/####PLEASEDO*NOT*EDITTHISFIL......
  • Xposed框架简单Hook实例:窥视“时间旅行”功能
    在我们的生活中,有时候我们希望能够改变一些事情,就像电影中的主人公可以通过时间旅行改变自己的命运一样。在Android系统中,Xposed框架就提供了一种类似的机会,让我们可以通过Hook技术改变应用程序的行为。本文将通过一个简单的例子来演示Xposed框架的基本使用,让我们一起来窥视一下“......
  • Linux MIPI 摄像头驱动框架编写(RN6752解码芯片)
    一、概述在编写MIPI摄像头驱动之前,需要先了解Media子系统的链路关系,这里我就不介绍了,需要的看我之前的笔记:LinuxMedia子系统链路分析。理解Media子系统链路关系后,会发现ISP不论是在摄像头端,还是集成在SOC中,驱动程序都是差不多的。多观察一下开发板中的其他案例,便会......
  • 技术体系结构——架构&框架
    一、总体技术体系单一架构一个项目,一个工程,导出为一个war包,在一个Tomcat上运行。也叫allinone。单一架构,项目主要应用技术框架为:Spring、SpringMVC、Mybatis分布式架构一个项目(对应IDEA中的一个project),拆分成很多个模块,每个模块是一个IDEA中的一个module。每一个工......
  • 瑞技伙伴 | WEKA® Data Platform,为AI等高性能工作负载提供澎湃动力
    AI淘金热如火如荼, 你有称手的工具吗? 人工智能(ArtificialIntelligent)是指建立及应用算法来模拟人类智慧进行学习、预测和决策。简而言之,AI的目标是试图让电脑像人类一样思考和行动。 AI狂飙进行时,数据先行 无论是总结过去、分析当下、规划未来,亦或准备几道菜,生成式人工智能(Ge......
  • [数据校验/数据质量] 数据校验框架:hibernate-validation
    0前言其一,项目中普遍遇到了此问题,故近两天深入地研究了一下。其二,能够自信地说,仔细看完本篇,就无需再看其他的Java数据校验框架的文章了。1数据校验框架概述1.0数据校验框架的产生背景以Web项目为例,用户需要填写表单信息保存提交。页面输入信息需要进行数据格式校验,并且......
  • c#学习笔记-------------------Quartz.NET任务调度框架
    Quartz.NET任务调度框架 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了Quartz.......
  • A potentially dangerous Request.Form value was detected from the client
    ApotentiallydangerousRequest.Formvaluewasdetectedfromtheclient解决方案一:在.aspx文件头中加入这句:<%@PagevalidateRequest="false" %>解决方案二:修改web.config文件:<configuration> <system.web>   <pagesvalidateRequest="fals......