Laravel 初识--模型关联 2
- 1、远程一对多
定义:通过多层间关联取到远层的关联(如:通过国家id获取所有用户的文章)
- 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 协议》,转载必须注明作者和本文链接
推荐文章: