在 Laravel 中在哪里插入强制性业务数据
Posted
技术标签:
【中文标题】在 Laravel 中在哪里插入强制性业务数据【英文标题】:Where to do insertion of mandatory business data in Laravel 【发布时间】:2016-03-22 22:31:32 【问题描述】:这是种子与迁移的问题(与可能存在的任何其他替代方案相比!)
假设我们有一个表“submission_types”,应用程序本身永远无法修改该表。例如,这些类型可以表示“视频”、“图像”、“音频”。该数据对于正确运行和假设向网站提交视频、图像或音频文件是必需的。
这些数据的插入去哪里了,因为它必须在应用程序运行时存在(无论开发/生产环境如何)?你应该使用 Laravel 的播种机吗? - 在我看来,他们似乎是为了用测试数据加载你的数据库......或者你应该使用迁移? - 似乎人们建议让插入远离迁移。 (或者您是否手动插入数据......当然不是)。 要重新迭代,此数据必须在所有情况下都存在,并且永远不会被任何业务逻辑修改 - 这是静态数据。
This question 似乎相关。
PS:将来您可能希望向表中添加更多类型,所以通过迁移来实现这一点似乎......不太理想?
【问题讨论】:
您发布的链接似乎回答了您的问题,seed is the way to go laravelbook.com/laravel-database-seeding 查看标题“创建新种子文件”他如何预填充用户角色 【参考方案1】:你和我的思维方式不必就上面写的编程方式达成一致!
也许你想在休息 20 分钟后思考这个问题,我的意思是,为这个问题喝彩,但同时你不认为你是在框框里思考而不是跳出框框思考吗?
只需考虑以下场景:
应用无法更改强制值:
这意味着它们应该内置在您的应用程序中或您的应用程序的一部分,因此我们正在谈论config
,可以通过包含您的强制值数组的隔离文件来解决,这些强制值可能是半动态的,带有几行您的技能编码。
应用程序在引导时或像往常一样在数据库中存储强制值:
在这种情况下,您可以使用 seeding 来执行此操作,迁移和播种旨在帮助您构建应用程序然后填充它,完全可以将播种用于此目的,即使在迁移中您也可以这样做,我个人将它与我喜欢创建的简单管理员用户一起使用,最有可能用于测试目的。但你可以做到。
底线是,您是一名程序员,您的应用必须具备 0 项 对您来说是强制性的。这是你的孩子,如果你面临强制性价值观,那么恕我直言,有问题,或者你在思考现状。
我确实尊重你,所以请你以正确的方式理解这一点,否则通过解释更多来改变我的理解来满足你的理解!
干杯!
【讨论】:
以上是关于在 Laravel 中在哪里插入强制性业务数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中在一秒钟内发出并发请求时避免重复记录
表单没有正确地将数据插入数据库 [Laravel][Eloquent]
在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?