我的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
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;
分享到:
相关推荐
Laravel开发-eloquent-single-table-inheritance 单表继承(Sti)作为Laravel雄辩模型的特征实现
Laravel开发-eloquent-extended-cast-model .zip
Laravel开发-eloquent-extended-cast-model 这个库帮助您制作更高级的演员表到雄辩的模型。
Laravel开发-eloquent-single-state-marking-store 一个雄辩的支持,单一状态标记存储symfony的工作流程。
Laravel开发-eloquent-uuid-for-key 用于Laravel雄辩的Uuid4键
Laravel开发-eloquent-log-lazy-loading 记录(或禁用)雄辩的延迟加载关系。
ROS是一个用于在不同进程间匿名的发布、订阅、传递信息的中间件。 ROS2系统的核心部分是ROS网络(ROS Graph)。ROS网络是指在ROS系统中不同的节点间相互通信的连接关系。 ROS Graph这里翻译成了ROS网络,因为我觉得...
Laravel开发-eloquent-mongodb-repository 雄辩的MongoDB存储库实现
eloquent-sortable, Eloquent模型的可以排序行为 Eloquent模型的排序行为 这个包提供了一个特性,它向一个有说服力的模型添加了可以排序的行为。模型新记录的order列的值由模型 1的所有记录的order列的最大值决定。...
Laravel开发-eloquent-model-generator 自动从Laravel5项目中的数据库生成所有雄辩的模型。
composer require krlove/eloquent-model-generator --dev 步骤2.注册GeneratorServiceProvider : 'providers' => [ // ... Krlove \ EloquentModelGenerator \ Provider \ GeneratorServiceProvider ::class, ...
Laravel开发-eloquent-search-map 轻松搜索模型的雄辩搜索宏
Laravel开发-eloquent-base-model 雄辩的基模型是雄辩的ORM继承模型。
Laravel开发-eloquent-state-machine 雄辩状态机
应用使用邮递员,失眠等用法$ git clone https://github.com/DanielArturoAlejoAlvarez/Eloquent-Relations-Laravel-7-and-MySQL[NAME APP]$ composer install$ copy .env.example .env$ php artisan key:generate$ ...
使用此软件包,您将能够使用机器学习的力量来预测Laravel Eloquent模型的属性值! :glowing_star: 使用直观的语法,您可以预测类别(字符串)和连续(数字)属性的值。看下面的例子。 $ animal = new \ App \ ...
$ git clone https://github.com/DanielArturoAlejoAlvarez/Eloquent-ORM-Laravel-8.5-Relationships-Advanced[NAME APP] $ composer install $ copy .env.example .env $ php artisan key:generate $ php artisan ...
Laravel开发-eloquent-nested-attributes 嵌套属性允许您通过父级保存关联记录的属性。默认情况下,嵌套属性更新被关闭,您可以使用$nested属性启用它。启用嵌套属性时,将在模型上定义属性编写器。
Laravel开发-eloquent-model-trait 为雄辩模型添加有用的方法
Laravel开发-eloquent-filterable 雄辩模型的过滤范围