如何在 Laravel 中使非数据库模型具有两个属性

Posted

技术标签:

【中文标题】如何在 Laravel 中使非数据库模型具有两个属性【英文标题】:How to make none-database model two attributes in Laravel 【发布时间】:2019-04-09 18:11:08 【问题描述】:

我是 Laravel 的新手。请指导我。

端口是模型,坐标是无数据库模型。端口模型中有 2 个浮点数 (lat and long)。当从数据库中加载一个 Port 时,这 2 个浮点数被转换为一个 Coordinates 对象。

我的第一个问题是,如何制作具有两个属性的非数据库模型?

我的第二个问题是,如何在 Port Model with Coordinates 对象中制作 2 个浮点数?

这是我的代码坐标模型非数据库模型,具有两个属性

class Coordinates extends Model


//Add attribute
protected $attributes = ['latitude', 'longitude'];

这里是端口模型

class Port extends Contracts\AppModel
 
    protected $coordinates = Coordinates::class;

    protected $fillable=[
        'un_latitude',
        'un_longitude',
    ];

    function __construct(array $attributes = array())
    
         $this->coordinates = Coordinates::class;
         $this->coordinates->latitude = $attributes["un_latitude"];
         $this->coordinates->longitude = $attributes["un_longitude"];
    


【问题讨论】:

请用点和逗号重写您的问题。很难读懂你的问题。 我已经完成了,请解释一下。 @Ruub 【参考方案1】:

据我所知,每个 Eloquent 模型都应该链接到数据库中的一个表。只需将latitudelongitude 添加为migration 中的列即可创建port 表。

【讨论】:

以上是关于如何在 Laravel 中使非数据库模型具有两个属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 查询生成器中使隐藏属性可见?

laravel 模型 - 如何在模型中动态设置列值?

使非客户区无效

具有两个主键的 Laravel 模型更新 [重复]

如何在 Laravel 中导入具有各种模型(和子数据/模型)的单个 excel 文件/工作表?

如何在 Laravel 5.8 中使 chart.js 动画/增长/活着?