Laravel 初识--模型关联 2

  • 1、远程一对多

    定义:通过多层间关联取到远层的关联 (如:通过国家 id 获取所有用户的文章)#

file

  • 2.N+1 问题:
    可以使用预载入大量减少查询次数。使用 with 方法指定想要预载入的关联对象
    $result = UserRole::with('role')->get();
    foreach ($result as $val) {
    // 查询什么关联数据,需要指定其关联模型属性
    dump($val->role->user_name);
    }
  • 2、修改器与获取器
    (1)获取器:设置后获取的字段会自动改变你设置值
    设置方法规则:get 字段名 Attribute 注意方法名称应该使用驼峰式大小写命名,而对应的 database 字段名称是下划线分隔小写命名 例子:
    // 定义获取器 IsRole === is_role
    public function getIsRoleAttribute($value){
    $data = [
    '1' => ' 有权限 ',
    '0' => ' 有权限 ',
    ];
    return $data[$value];
    }

    //获取
    $reuslt  = UserRole::find(2);

    (2) 修改器:设置字段后会修改为你设置的内容
    设置的规则:set 字段名 Attribute 字段名规则:与获取器一样 例子:
    // 定义修改器 IsRole === role_name
    public fnction setRoleNameAttribute($value){
    $this->attributes['role_name'] = strtolower($value);
    }
    // 获取
    $reuslt = UserRole::find(2);
    $reuslt ->role_name = 'WINNER';
    dump($reuslt);

本作品采用《CC 协议》,转载必须注明作者和本文链接
Luson
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。