php的db类库Eloquent单独使用系列(11)- 添加模型属性
程序员文章站
2022-03-06 22:25:23
...
我的Eloquent单独使用系列文章
php的db类库Eloquent单独使用系列(1)
php的db类库Eloquent单独使用系列(2) - 分页
php的db类库Eloquent单独使用系列(3) - sql日志
php的db类库Eloquent单独使用系列(4)- 事件监听
php的db类库Eloquent单独使用系列(5)- 模型转数组
php的db类库Eloquent单独使用系列(6)- 一对一关联
php的db类库Eloquent单独使用系列(7)- 一对多关联
php的db类库Eloquent单独使用系列(8)- 多对多关联
php的db类库Eloquent单独使用系列(9)- 多对多关联 - 表关联自身
php的db类库Eloquent单独使用系列(10)- 多对多关联 - 远程一对多
php的db类库Eloquent单独使用系列(11)- 多对多关联 - 添加模型属性
php的db类库Eloquent单独使用系列(12)- 结果集模型转数组 - 2
本系列文章的目的就是脱离laravel环境使用Eloquent,因为它好用。
本系列文章所有代码均测试通过。Eloquent版本:5.4.27
本文的目的是模型的额外属性。
首先建表,假设有一个活动表act,每个表有一个地区属性area_id,关联到area表,而area表有一个name字段。
现在我希望活动模型能自动有一个area_name属性
则
Act.php
客户端代码
php的db类库Eloquent单独使用系列(1)
php的db类库Eloquent单独使用系列(2) - 分页
php的db类库Eloquent单独使用系列(3) - sql日志
php的db类库Eloquent单独使用系列(4)- 事件监听
php的db类库Eloquent单独使用系列(5)- 模型转数组
php的db类库Eloquent单独使用系列(6)- 一对一关联
php的db类库Eloquent单独使用系列(7)- 一对多关联
php的db类库Eloquent单独使用系列(8)- 多对多关联
php的db类库Eloquent单独使用系列(9)- 多对多关联 - 表关联自身
php的db类库Eloquent单独使用系列(10)- 多对多关联 - 远程一对多
php的db类库Eloquent单独使用系列(11)- 多对多关联 - 添加模型属性
php的db类库Eloquent单独使用系列(12)- 结果集模型转数组 - 2
本系列文章的目的就是脱离laravel环境使用Eloquent,因为它好用。
本系列文章所有代码均测试通过。Eloquent版本:5.4.27
本文的目的是模型的额外属性。
首先建表,假设有一个活动表act,每个表有一个地区属性area_id,关联到area表,而area表有一个name字段。
现在我希望活动模型能自动有一个area_name属性
则
Act.php
<?php namespace app\model; use \Illuminate\Database\Eloquent\Model; /** * 活动模型类 */ class Act extends Model { protected $table = 'act'; public $timestamps = false; protected $appends = ['area_name']; // 这里添加附加属性 protected $hidden = ['city']; //如果不这么写,会把city模型加入 // 自定义属性 // 此方法命名很讲究,下划线转驼峰大小写。 // 获取属性时,使用$act->area_name public function getAreaNameAttribute() { return $this->city->name; // name属性是city表里的。 } // 这是常规的定义,因为一个城市会关联多个活动 public function city() { return $this->belongsTo('app\model\Area', 'area_id', 'id'); } }
客户端代码
$act = \app\model\Act:find(1); echo $act->area_name;
上一篇: 高并发系统开发碎碎念 服务器并发
下一篇: JPA规范及其它持久层框架