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
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!