- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们希望从专有服务器存储房地产信息(我们使用 PHRETS 检索数据并使用 MySQL 来存储数据)。旧代码是过程性的并使用数组,但我认为最好使用 Eloquent ORM 并让 Laravel 完成繁重的工作,而不是编写我们自己的对象。
数据流的结构对于它发送的每个房地产都是可重复的,但数据将简单地保留它不包含的信息(例如$property['AgentDetails']['Position']
如果其端不存在,则可能不会完全发送)。
另一个需要注意的是,一些数据是在多维数组中接收的,这些数据当前需要循环并存储在单独的规范化表中(propertyAddress
、propertyAgentDetails
、 propertyPhotos
等)。这意味着数据可以作为 $property['AgentDetails'][0]
... $property['AgentDetails'][2]
发送,因为它包含多个列表代理或 $property['AgentDetails']
(如果有一个挂牌代理)。
然后,我们必须通过属性 ID 上的大量联接来检索此数据。
我正在寻找设置一个 Laravel 模型和 Controller 来完成繁重的工作并处理此数据流(如果不存在则插入,如果存在则更新),其中简化的结构类似于此,
array(#) {
["@attributes"]=>
array(2) {
["ID"]=>
string(7) "444444"
["LastUpdated"]=>
string(29) "Fri, 13 Jul 2018 17:18:20 GMT"
}
["ListingID"]=>
string(7) "3333333"
["AgentDetails"]=>
array(6) {
["@attributes"]=>
array(1) {
["ID"]=>
string(7) "2222222"
}
["Name"]=>
string(14) "AGENT NAME"
["Websites"]=>
array(1) {
["Website"]=>
string(26) "http://example.com"
}
["Office"]=>
array(7) {
["@attributes"]=>
array(1) {
["ID"]=>
string(5) "111111"
}
["Name"]=>
string(27) "REALTY CO"
["Address"]=>
array(5) {
["StreetAddress"]=>
string(19) "59 main st. west"
["AddressLine1"]=>
string(19) "59 main st. west"
["City"]=>
string(7) "city"
["Province"]=>
string(2) "province"
["PostalCode"]=>
string(6) "H0H0H0"
}
["Phones"]=>
array(1) {
["Phone"]=>
array(1) {
[0]=>
string(14) "(555) 555-5555"
}
}
["Websites"]=>
array(1) {
["Website"]=>
string(30) "http://www.example.com"
}
["OrganizationType"]=>
string(4) "Firm"
["Franchisor"]=>
string(11) "Independent"
}
}
["Building"]=>
array(7) {
["CoolingType"]=>
string(15) "Air Conditioned"
["FireplacePresent"]=>
string(5) "False"
["FireProtection"]=>
string(21) "Full Sprinkler System"
["HeatingType"]=>
string(29) "Baseboard heaters, Forced air"
["SizeInterior"]=>
string(10) "15000.0000"
["TotalFinishedArea"]=>
string(10) "15000 sqft"
["UtilityWater"]=>
string(15) "Municipal water"
}
["Land"]=>
array(1) {
["Acreage"]=>
string(5) "false"
}
["Address"]=>
array(8) {
["StreetAddress"]=>
string(13) "301 main"
["AddressLine1"]=>
string(13) "301 main"
["StreetNumber"]=>
string(3) "301"
["StreetName"]=>
string(9) "main"
["City"]=>
string(7) "city"
["Province"]=>
string(7) "province"
["PostalCode"]=>
string(6) "H0H0H0"
["Country"]=>
string(6) "Canada"
}
["PropertyType"]=>
string(10) "Industrial"
["ZoningDescription"]=>
string(4) "COMM"
}
是否有关于如何使用 Laravel 和 Eloquent/ORM 处理复杂(但可重复)的数据结构和数据流的最佳实践?
我认为我可以继续练习不同的迁移/数据库结构,并测试如何最好地存储和检索数据,但我认为首先了解最佳实践或其他人首先尝试过的事情会很有帮助。
我的直觉是,存储和检索数据的最简单方法是完全类似于数据结构,并在每次结构发生变化时更新它。数据是通过版本化 API 检索的,因此应该没问题。
让我知道你的想法。非常感谢!
最佳答案
根据您的记录,您似乎需要创建这些模型及其关系。它会给你基本的想法
这是 Eloquent 模型及其表结构,您可以添加修改它,但应该是这样的
Model with Tables
<强>1。属性(表:属性(id、名称、描述、listing_id、type_id、created_at、updated_at))
<强>2。 agent_property(id,property_id,agent_id,created_at,updated_at)不需要为其创建模型
<强>2。代理(表:代理(id,名称,office_id,created_at,updated_at))存储代理详细信息
<强>3。网站(表:网站(id、名称、ownerable_id、ownerable_type、created_at、updated_at))
<强>4。办公室(表:办公室(id、名称、address_id、created_at、updated_at))
<强>5。地址(表:地址(id、邮政编码、街道、line1、城市、省份、国家/地区、created_at、updated_at))
<强>6。电话(表:电话(id、号码、phoneble_id、phoneble_type、created_at、updated_at))
<强>7。类型(表:类型(id,名称,created_at,updated_at))
<强>8。建筑物(表:建筑物(id,property_id,cooling_type,firewall_present,...,created_at,updated_at))
您将在此处获得所有 Eloquent 模型详细信息 https://laravel.com/docs/5.6/eloquent#defining-models
Now the Eloquent relationship between these models should be like this
属性belongsTo类型(在属性模型中)
特性hasOne建筑物(在特性模型中)
属性belongsToMany代理(在属性模型中,使用agent_property
数据透视表)
代理belongsToMany属性(在代理模型中,使用agent_property
数据透视表)
代理属于办公室(在代理模式中)
代理hasMany网站(在代理模型中)
Office hasMany 电话(在 Office 模型中,使用 polymorphic relation )
办公室属于地址(在办公室模型中)
网站morphTo(在网站模型中,polymorphic relation)
手机morphTo(在手机型号中,polymorphic relation)
您将在此处获得所有关系详细信息https://laravel.com/docs/5.6/eloquent-relationships
希望能给你一些启发
关于php - 如何使用 PHP/Laravel 设置模型并存储数据流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433525/
可不可以命名为MVVM模型?因为View通过查看模型数据。 View 是否应该只与 ViewModelData 交互?我确实在某处读到正确的 MVVM 模型应该在 ViewModel 而不是 Mode
我正在阅读有关设计模式的文章,虽然作者们都认为观察者模式很酷,但在设计方面,每个人都在谈论 MVC。 我有点困惑,MVC 图不是循环的,代码流具有闭合拓扑不是很自然吗?为什么没有人谈论这种模式: mo
我正在开发一个 Sticky Notes 项目并在 WPF 中做 UI,显然将 MVVM 作为我的架构设计选择。我正在重新考虑我的模型、 View 和 View 模型应该是什么。 我有一个名为 Not
不要混淆:How can I convert List to Hashtable in C#? 我有一个模型列表,我想将它们组织成一个哈希表,以枚举作为键,模型列表(具有枚举的值)作为值。 publi
我只是花了一些时间阅读这些术语(我不经常使用它们,因为我们没有任何 MVC 应用程序,我通常只说“模型”),但我觉得根据上下文,这些意味着不同的东西: 实体 这很简单,它是数据库中的一行: 2) In
我想知道你们中是否有人知道一些很好的教程来解释大型应用程序的 MVVM。我发现关于 MVVM 的每个教程都只是基础知识解释(如何实现模型、 View 模型和 View ),但我对在应用程序页面之间传递
我想realm.delete() 我的 Realm 中除了一个模型之外的所有模型。有什么办法可以不列出所有这些吗? 也许是一种遍历 Realm 中当前存在的所有类型的方法? 最佳答案 您可以从您的 R
我正在尝试使用 alias 指令模拟一个 Eloquent 模型,如下所示: $transporter = \Mockery::mock('alias:' . Transporter::class)
我正在使用 stargazer 创建我的 plm 汇总表。 library(plm) library(pglm) data("Unions", package = "pglm") anb1 <- pl
我读了几篇与 ASP.NET 分层架构相关的文章和问题,但是读得太多后我有点困惑。 UI 层是在 ASP.NET MVC 中开发的,对于数据访问,我在项目中使用 EF。 我想通过一个例子来描述我的问题
我收到此消息错误: Inceptionv3.mlmodel: unable to read document 我下载了最新版本的 xcode。 9.4 版测试版 (9Q1004a) 最佳答案 您没有
(同样,一个 MVC 验证问题。我知道,我知道......) 我想使用 AutoMapper ( http://automapper.codeplex.com/ ) 来验证我的创建 View 中不在我
需要澄清一件事,现在我正在处理一个流程,其中我有两个 View 模型,一个依赖于另一个 View 模型,为了处理这件事,我尝试在我的基本 Activity 中注入(inject)两个 View 模型,
如果 WPF MVVM 应该没有代码,为什么在使用 ICommand 时,是否需要在 Window.xaml.cs 代码中实例化 DataContext 属性?我已经并排观看并关注了 YouTube
当我第一次听说 ASP.NET MVC 时,我认为这意味着应用程序由三个部分组成:模型、 View 和 Controller 。 然后我读到 NerdDinner并学习了存储库和 View 模型的方法
Platform : ubuntu 16.04 Python version: 3.5.2 mmdnn version : 0.2.5 Source framework with version :
我正在学习本教程:https://www.raywenderlich.com/160728/object-oriented-programming-swift ...并尝试对代码进行一些个人调整,看看
我正试图围绕 AngularJS。我很喜欢它,但一个核心概念似乎在逃避我——模型在哪里? 例如,如果我有一个显示多个交易列表的应用程序。一个列表向服务器查询匹配某些条件的分页事务集,另一个列表使用不同
我在为某个应用程序找出最佳方法时遇到了麻烦。我不太习惯取代旧 TLA(三层架构)的新架构,所以这就是我的来源。 在为我的应用程序(POCO 类,对吧??)设计模型和 DAL 时,我有以下疑问: 我的模
我有两个模型:Person 和 Department。每个人可以在一个部门工作。部门可以由多人管理。我不确定如何在 Django 模型中构建这种关系。 这是我不成功的尝试之一 [models.py]:
我是一名优秀的程序员,十分优秀!