首页 文章

Laravel的管理员小组? [关闭]

提问于
浏览
1

我正在寻找从Code Igniter切换到Laravel .

我们使用自定义管理面板部署了大量网站 .

这是设置为Code Igniter的两个安装,你基本上有(简化,我们实际上在主站点和管理面板上使用HMVC,但这得到了重点)

index.php
assets
system
application
  config
  controllers
  models
  views    
admin
  index.php
  assets
  application 
    config 
    controllers
    models
    views

并且管理员安装设置为通过包括从主站点加载配置文件(例如 database.php ) .

我们所有的主站点模型都使用管理面板中的模型通过include然后扩展它们,使我们只能拥有主站点中主站点特有的功能 .

这对我们来说效果很好,但现在我们正在转向Laravel,我们想知道是否有更好的方法,我们使用管理面板管理几个“模块”,如博客,购物车, properties 经理,这些都是投入 .

基本上我们希望能够:

  • 保持主站点与管理面板的分离,以便我们可以在任何站点上使用管理面板 .

  • 仍然可以放入捆绑包(例如博客包) .

  • 理想情况下,我们希望在管理面板和主站点之间有三个文件夹的共享包文件夹 . admin / main / shared 所以捆绑包是自包含的 .

在laravel中实现这一目标的最佳方式是什么?

4 回答

  • 0

    您可能已经考虑过这一点,但我认为最好使用管理包,因为捆绑包都是核心系统的一部分 . 这对SoC和简单(易用性)都有好处 .

    然后,管理面板可以找到所有捆绑包(当然除了本身)以读取和写入配置条目,例如博客捆绑包的配置条目 .

    另一种方法是将管理面板放入主应用程序,方法是将特定命令路由到各个管理控制器(不要忘记可以将控制器放入子文件夹) . 例如,您可以使用 routes.phpadmin/pages/edit/152 路由到 application/controllers/admin/ 中的 pages.php 控制器 . 您甚至可以使用此方法管理各种捆绑/管理单元,方法是扫描捆绑目录,如前所述 .

  • 1

    我也从CI切换到Laravel,发现基本的管理面板在Laravel中,但在生成CRUD时不能处理数据的正确解决方案

    检查LaraAdmin是一个开源的Laravel管理面板/ CMS,可以用作Laravel的管理后端,数据管理工具或CRM样板,具有CRUD生成,模块管理器,媒体,菜单,备份等功能 .

    文件:http://laraadmin.com/docs/1.0

    资料来源:https://github.com/dwijitsolutions/laraadmin

  • 2

    有没有办法可以更改Apache配置,因此每个站点都是一个虚拟主机,是Laravel的一个目录?这样每个站点都是自己的“html”目录,你不需要在Laravel中改变任何东西; index.php中的行将为您完成所有繁重的工作:

    require '../paths.php';
    

    这假设您的所有站点都在同一台计算机或群集上运行,因此您的系统将如下所示

    assets
    system
    application
      config
      controllers
        admin
        site1
        site2
      models
        admin
        site1
        site2
      views    
        admin
        site1
        site2
    html_site1
    html_site2
    

    但是,如果您只想让管理面板成为自己的应用程序,您可以将html的内容复制到admin目录中,更改该目录的mod_rewrite或.htaccess然后更改

    require '../paths.php';
    

    require 'path/to/admin/paths.php';
    

    它将使用完全不同的laravel应用程序 .

  • 0

    您可以使用Laravella(用于laravel的CMS,CRUD包)

    https://github.com/laravella/laravella/releases

    无论您是否使用Laravella,都要为每个站点创建一个覆盖主站点类的包 . 这样您就可以将每个站点保存在自己的源代码控制存储库中 .

相关问题