laravel之两个项目可以使用同一个数据库吗
这个问题可能听起来很模糊,但实际上,这是我一直在想的问题,我不知道我该怎么做。
我使用 Laravel 5 已经有一段时间了,但是我使用 Laravel 开发的大多数项目都在同一个项目中有前端应用程序和后端应用程序这次的要求是制作两个单独的项目,一个用于前端,另一个用于后端。
当试图弄清楚 Controller 将如何与模型交互,以及将如何处理迁移时,就会出现询问?我是否必须为前端和后端的每个表制作一个模型?
目标是为两个项目使用相同的数据库,而不会出现迁移和模型问题。
编辑 1 我所说的前端应用程序是指将显示数据的网站,人们将在其中进行交互,他们将在其中看到一些东西。后端应用程序是管理员编辑前端内容的应用程序,他们可以在其中对数据库进行增删改查;在前端应用程序中,我只想从数据库中选择数据。
请您参考如下方法:
我遇到了同样的问题,并认为我会为将来可能希望这样做的任何人回答。在许多情况下,您可能有两个需要从同一个数据库中提取数据的独立应用程序。在我的例子中,它是一个输入各种数据集的后端,以及一个客户从特定区域提取信息的前端/面向客户的站点。两者都是巨大的应用程序,将它们分开是一个好处。
魔法来自 Composer 围绕 PSR4 命名空间的几行非常简单的代码。
如果您在创建两个项目之前就知道要共享哪些模型,您可以简单地创建一个单独的文件夹并将所有这些模型放入命名空间“Share”或类似名称中。然后以与下面相同的方式通过 composer 的自动加载将它们拉入两个应用程序。
如果像我一样,您有一个已经完成的项目(此时不想更改原始命名空间)并且现在想添加另一个使用许多相同模型的项目,这就是我所做的:
- 创建新的 Laravel 项目
将新项目的新命名空间设置为与“App”不同的名称
php artisan app:name 新名称
确保先执行此步骤!如果您打开文件或进行更改,自动重新命名空间将不起作用。
在
Composer.json
中添加指令,以通过命名空间“App”查找所有旧模型(和其他任何模型),以及当前应用程序在 NewName 下的所有模型(注意您可以转到根安装文件夹上方):
“自动加载”:{ “类图”:[ “数据库” ], “psr-4”:{ "新名称\\\": "应用程序/", "App\\\": "../original-project-folder/app/" } },
- 因为迁移可能依赖于本地类模型,所以您需要将新项目的迁移保存在新项目文件夹中。您可以在原始迁移后运行这些,并且运行良好。
- 如果像我一样,
app#2
有一组不同的用户,并且想要更改用户模型(以免使用原始应用程序用户类),这是一个更多的工作,主要围绕授权。更改 app/config/auth.php 以确保为您的新用户类提供正确的类名。
我花了很长时间才弄清楚这一点 - 它不容易搜索到。希望这对某人有帮助。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。