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
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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