一个适用于许多数据库的laravel应用程序

时间:2019-02-11 20:38:46

标签: php laravel

嗨,我有laravel项目 在我的服务器上,我有此文件夹

project1

project2

project3

project4

它们都有相同的文件,我只是更改.env文件以连接到数据库,每个项目都有不同的数据库 当我在项目上进行任何更改时,我必须将项目文件上传到所有文件夹 我正在寻找一种处理一个项目的方法,并且当用户从

输入项目时
mywebsite/project1
mywebsite/project2
mywebsite/project3
mywebsite/project4

通过一个源文件将他与数据库连接 谢谢

2 个答案:

答案 0 :(得分:1)

根据您的用例,考虑到每个项目选择都有不同的数据库,您可以使用中间件来实现。

当用户选择/更改项目时,将其存储在用户表或会话中。然后,您可以使用中间件使用以下命令来切换数据库:

import PyQt5.QtWidgets as QWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
from waitingspinnerwidget import QtWaitingSpinner
import sys

class Example_Window(QWidgets.QWidget):
    def __init__(self):
        super(QWidgets.QWidget,self).__init__()

        self.initUI()

    def initUI(self):
        self.button = QWidgets.QPushButton("Start Spinner") # +
        self.button.clicked.connect(self.toggle_spinner)

        self.spinner = QtWaitingSpinner(self, centerOnParent=False)

        self.grid = QWidgets.QGridLayout()
        self.grid.addWidget(self.button, 0, 0)

#        self.grid.addWidget(self.spinner,0,1)        # ---
        self.grid.addWidget(self.spinner, 0, 1, 1, 2) # +++    <---

        self.setLayout(self.grid)
        self.show()

    def toggle_spinner(self):
        if self.spinner.isSpinning():
            self.spinner.stop()
            self.button.setText("Start Spinner") # +
        else:
            self.spinner.start()
            self.button.setText("Stop Spinner")  # +

if __name__ == '__main__':
    app = QWidgets.QApplication([])
    main = Example_Window()
    main.resize(170, 70)                               # +++
    sys.exit(app.exec())    

但是,已经有this个软件包可以满足您的需求。检查是否有帮助

答案 1 :(得分:1)

您可以尝试多租户包。一个代码库,但分隔资产文件,数据库等。

https://github.com/hyn/multi-tenant

OR

https://laravel-tenancy.com/