【问题标题】:Admin panel in Laravel? [closed]Laravel 的管理面板? [关闭]
【发布时间】:2012-12-08 15:27:57
【问题描述】:

我正在考虑从 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)。

我们所有的主站点模型都使用管理面板中的模型,通过包含然后扩展它们,使我们能够仅在主站点中拥有特定于主站点的功能。

这对我们来说效果很好,但是现在我们正在切换到 Laravel,我们想知道是否有更好的方法来做到这一点,我们使用管理面板来管理几个“模块”,例如博客、购物车、物业经理,都是drop-ins。

基本上我们希望能够:

  • 保持主站点与管理面板的分离清晰,以便我们可以在我们的任何站点上使用管理面板。
  • 仍然可以放入捆绑包(例如博客捆绑包)。
  • 理想情况下,我们希望在管理面板和主站点之间有一个共享捆绑文件夹,其中包含三个文件夹。 admin/main/shared 所以包是自包含的。

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

【问题讨论】:

  • @Charles - 为什么这些标签不相关?这是关于两个不同的框架 - 因此frameworks |它是关于一个用于为多个站点供电的管理面板,因此是 multisite,它是关于管理面板,因此是 admin
  • 标签不是关键字。 “框架”和“管理员”是噪音。它们基本上是无用的元垃圾场。去看看他们的问题列表,你会发现列出的问题没有共同之处。不鼓励使用它们。 “多站点”没有其他问题,它是作为 wordpress 问题的一部分不必要地创建的。这是一个 Laravel 问题。
  • 那么公平,只是想澄清一下为什么它们被删除,现在我知道不要再使用它们了。

标签: php laravel


【解决方案1】:

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

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

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

源代码:https://github.com/dwijitsolutions/laraadmin

【讨论】:

    【解决方案2】:

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

    然后,管理面板可以找到所有包(当然,除了它自己)来读取和写入配置条目,例如博客包的那些。

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

    【讨论】:

      【解决方案3】:

      有没有一种方法可以更改 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 的内容复制到管理目录中,更改该目录的 mod_rewrite 或 .htaccess 然后更改

      require '../paths.php';
      

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

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

      【讨论】:

        【解决方案4】:

        你可以使用 Laravella(一个 CMS,laravel 的 CRUD 包)

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

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

        【讨论】:

          猜你喜欢
          • 2011-12-04
          • 2012-07-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多