13 个 Laravel 管理面板生成器

发布日期:作者:

13 Laravel Admin Panel Generators image

开发人员很懒。不,我没有开玩笑 - 他们努力创建帮助他们避免未来更多工作的系统。尤其是重复性的工作。现在有相当极端的例子 - 我们不再需要编写代码了;它正在为我们生成。今天,我们将看看适用于 Laravel 框架的各种管理面板和后端项目构建器的示例。它们实际上可以为我们节省多少时间?

免责声明:我是其中一个构建器的创始人,QuickAdminPanel,但我尽力在这个市场评论中尽可能诚实和公正。确实有一些很棒的竞争对手,他们值得赞扬。

管理面板生成器有两大类:可视化构建器基于控制台的构建器。选择取决于您的偏好,您是喜欢使用 GUI 还是使用带有参数的 Artisan 命令进行键入。

另外,这里需要了解的一个重要术语是CRUD——这个缩写代表“创建、读取、更新、删除”——这些操作是所有管理面板的基础。一个 CRUD 通常代表一个模型和一个管理该数据的菜单项。

重要提示:以下所有工具均在 Laravel 5.3 上进行了测试。在撰写本文时,要求他们正式支持 5.4 版本还为时过早。

可视化管理面板构建器

Voyager:缺少的 Laravel 管理

尽管这款产品相当新,但给我留下了最深刻的印象。它已经拥有庞大的粉丝群体,之前在 Laravel 新闻中也曾被提及过,并且在 DevDojo 的 Youtube 系列节目中也有专门介绍。

Voyager 拥有精致而专业的界面,但重点是它可以正常工作。清晰的使用说明、友好的前端主题、没有明显的错误或未完成的部分——这就是 Voyager。即使是像船长照片或船轮这样的图标,也使它整体看起来很不错。

另一个明智的决定是在安装过程中使用参数“dummy-data”——您可以拥有一个填充了预先填写条目的管理面板,以便您进行尝试。

Voyager 还拥有一个媒体管理器,可以处理您上传的所有文件,这非常方便,并且帮助它在其他管理面板构建器中脱颖而出。

最后,借助 Voyager,您还可以直接从管理面板更改数据库表——这相当于在您的后端应用程序中使用一个小型 phpMyAdmin

总的来说,Voyager 看起来是市场上最完善的解决方案,但如果它长时间没有得到支持或更新,情况很容易发生变化,这在开源软件包中很常见。

LaraAdmin:管理面板 + CRM

这是另一个让我印象深刻的项目。安装并登录您的管理面板后,您可以以可视化的方式创建模块,这些模块代表您的 CRUD。作者表示,模块化系统借鉴了 SugarCRM 的理念。

只需点击几下,您就可以为您的模型生成数据库迁移,并同时生成 CRUD,或者如果您愿意,也可以单独生成。

LaraAdmin 附带了一些预定义的模块。它们可以帮助您了解系统,但另一方面,如果我必须从头开始创建我的项目,我需要花一些时间才能摆脱这些 LaraAdmin 默认设置。

与上面的 Voyager 一样,LaraAdmin 也拥有上传功能。基本上,它是一个用于浏览上传文件的内部浏览器。

对于前端视图,LaraAdmin 使用了非常流行的主题AdminLTE。实际上,大多数管理面板构建器都使用它;它已经成为某种市场标准。

QuickAdmin:软件包和在线生成器

这个软件包非常简单——安装后,您可以创建 CRUD 或非 CRUD 菜单项,并指定字段和角色/权限。它可能是本评论中所有工具中最短的自述文件。

QuickAdmin 的一个重要里程碑是 管理面板构建器的在线版本——它不是作为您现有项目的 Laravel 软件包提供服务,而是为您构建整个 Laravel 项目,以便您下载和使用。因此,您没有任何软件包依赖项,也不需要学习该特定软件包的任何语法。

非可视化管理面板构建器

Z-song / Laravel-admin

这个软件包几乎介于两种世界之间——生成器的一部分实际上是可视化的,因此您可以在管理面板中创建新的菜单项,但对于大部分过程,您需要手动编写代码,例如

php artisan admin:make UserController --model=App\\User
 
$router->resource('users', UserController::class);
 
use Encore\Admin\Grid;
use Encore\Admin\Facades\Admin;
$grid = Admin::grid(Movie::class, function(Grid $grid){

这是可视化生成器和基于代码的生成器之间的根本区别——对于后者,您需要学习它们的语法、一些规则并坚持这些规则。如果您想在该软件包之上创建一些自定义内容,可能会非常棘手。尽管如此,Z-Song 软件包非常出色并且运行良好。

它还提供其他功能,例如模型网格、模型表单、模型树,甚至预构建的小部件。

InfyOm Laravel 生成器

功能非常强大的生成器,其口号是“在几分钟内准备好您的 API 和管理面板”,因此它们首先强调 API,而不是管理面板。为此,他们拥有一个独立的 API 生成器,该生成器可以作为管理面板的一部分,也可以作为独立的工具使用。不仅如此——他们还会为 API 生成 Swagger 注释

虽然 InfyOm Generator 不是可视化的(他们声称目前正在开发 GUI),但它提供了三种不同的选项来指定 CRUD 参数:控制台JSON 文件或现有的数据库。没错,您可以为已存在的表生成 CRUD,这难道不酷吗?

此生成器的一个有趣功能是它使用 存储库模式生成代码,因此您的控制器将如下所示

class BookController extends AppBaseController
{
/** @var BookRepository */
private $bookRepository;
 
public function __construct(BookRepository $bookRepo)
{
$this->bookRepository = $bookRepo;
}
 
/**
* Display a listing of the Book.
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$this->bookRepository->pushCriteria(new RequestCriteria($request));
$books = $this->bookRepository->all();
 
return view('books.index')
->with('books', $books);
}

这可能是一件非常好的事情,但如果您不想使用存储库,也可能过于复杂。最大的好处是——通过使用此模式,InfyOm 还会为您生成测试用例!

在前端方面,InfyOm 提供四种模板可供选择:AdminLTEMetronicBootstrapFlatLab

InfyOm 的最大问题(与大多数非可视化生成器一样)是您必须严格遵守它们的语法规则。他们在文档中明确说明:“仔细阅读文档以指定字段输入。” 但是,如果您在参数中没有输入错误,这个生成器会像魔术一样工作。

AppzCoder:CRUD 生成器 + 管理面板

这个软件包包含两款产品——一个是独立的 CRUD 生成器,另一个是 Laravel 管理软件包。其官方文档中说明要求是 Laravel 5.1,但在测试期间它也适用于 5.3 版本。

安装后,您将获得一个默认的 Laravel bootstrap 主题视图,并可以使用以 crud:[command] 为前缀的 Artisan 命令逐个手动添加 CRUD。

来自其官方文档中的一个示例

php artisan crud:generate Posts --fields="title#string; content#text; category#select#options=technology,tips,health" --view-path=admin --controller-namespace=Admin --route-group=admin

如果这听起来对您来说太难了,您可以在 JSON 文件中提供字段详细信息,然后将其指定为命令的参数。

您还可以单独生成不同的文件,例如

php artisan crud:controller PostsController --crud-name=posts --model-name=Post --view-path="directory" --route-group=admin
php artisan crud:model Post --fillable="['title', 'body']"

生成 CRUD 后,你需要在代码中自己指定所有细节,比如菜单项的位置、使用哪些中间件和角色等等。因此,这个生成器只完成了管理面板部分工作。

Backpack for Laravel

这个项目其实很大。它已经远远超出了一个简单的管理面板生成器,它有方便的结构,由独立的包组成,比如 Base、CRUD、LogManager、BackupManager 等等。作者声称 Backpack 适合展示网站、创业公司和复杂的 Web 应用。

注意: Backpack 已经在 Laravel News 文章 中被提及,包括使用案例和概述。

除了 CRUD 生成器,它还预先构建了 CRUD,包括权限管理器、设置、页面管理器、新闻管理器和菜单管理器。此外,Backpack 家族中的一些包作为扩展存在:日志、备份和其他一些功能可以很容易地添加到你的应用中。

但是,Backpack 的问题是它的严格性,你需要在控制器代码中描述 CRUD 的所有功能,它可能看起来像这样

class TagCrudController extends CrudController {
 
public function setup() {
$this->crud->setModel("App\Models\Tag");
$this->crud->setRoute("admin/tag");
$this->crud->setEntityNameStrings('tag', 'tags');
 
$this->crud->setColumns(['name']);
$this->crud->addField([
'name' => 'name',
'label' => "Tag name"
]);
}

虽然在控制器方法中设置所有内容看起来很方便,但如果你想在它之上构建任何自定义内容,你必须自己“黑掉” Backpack。公平地说,这适用于本系列中的大多数包,你需要处理依赖项,也许 Backpack 在这里是最严格的一个。

还值得一提的是 Backpack 并非免费用于商业用途。作者用一种人性化的方式表达了这一点:“如果你不通过它赚钱,它是免费的;如果你通过它赚钱,它很便宜。”(确切地说,是 19 美元。)

SleepingOwl Admin

可能是这个列表中最老的包之一,但仍然得到积极维护——这个包是由一家俄罗斯公司创建的,你可以看到俄语出现在文档、提交信息和其他文本中的某些部分。但这不会妨碍你实际使用 SleepingOwl;这个包非常强大。

与其他情况一样,你需要大量使用这个包的语法——以下是如何在 SleepingOwl 中添加菜单

Admin::menu()->url('/')->label('Start Page')->icon('fa-dashboard')->uses('\App\HTTP\Controllers\AdminController@getIndex');
Admin::menu(\App\User::class)->icon('fa-user');
Admin::menu()->label('Subitems')->icon('fa-book')->items(function ()
{
Admin::menu(\Acme\Models\Bar\User::class)->icon('fa-user');
Admin::menu(\Acme\Models\Foo::class)->label('my label');
});

另一个缺点是这个包的文档似乎有点过时——因此,你应该使用 sleepingowl:install 而不是 Artisan 命令 admin:install,并且可以在其他地方找到这种不一致性的更多示例。


因此,这些是需要考虑的用于生成管理面板的八个包,还有五个包需要提及,但不会对其进行完整评审。

我已经测试了另外两个包,但它们未能完成任务

  • CrudBooster – 我通过一些手动修复使其工作,但文档很难理解(可能使用了 Google 翻译,作者来自印度尼西亚),我还不喜欢作者的一些建议,比如使用字段名 id_xxxx 而不是 xxxx_id
  • Zofe / Rapyd-Laravel – 不幸的是,它无法在 Laravel 5.3 上运行,因此在撰写本文时可能不会更新。根据其自述文件,最新支持的版本是 5.2。

最后,还有三个选项可供选择——来自 CodeCanyon 的付费包。我无法提供有关它们的很多信息,因此我将它们留给你去查看

好了,就这样。这些是我找到的所有可行的选项,让你几乎不用编写代码就可以构建 Laravel 管理面板。

PovilasKorop photo

Laravel Daily 的课程和教程创建者

分类于
Cube

Laravel 新闻通讯

加入 40,000 多名其他开发者,绝不错过新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理你的服务器,并在几秒钟内部署你的 Laravel 应用。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

无妥协

Joel 和 Aaron,来自无妥协播客的两名经验丰富的开发者,现在可以为你的 Laravel 项目雇佣。 ⬧ 固定费率 7500 美元/月。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

无妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保你的 Web 应用成功。

Kirschbaum
Shift logo

Shift

运行旧的 Laravel 版本?即时的、自动的 Laravel 升级和代码现代化,让你的应用保持新鲜。

Shift
Bacancy logo

Bacancy

仅需 2500 美元/月,为你的项目配备一名具有 4-6 年经验的经验丰富的 Laravel 开发者。获得 160 小时的专业知识和 15 天的无风险试用。立即安排通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有超过十年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel 电子商务

Laravel 的电子商务。一个开源包,为 Laravel 带来了现代无头电子商务功能的强大功能。

Lunar: Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 工作板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS 启动套件

SaaSykit 是一个 Laravel SaaS 启动套件,它包含运行现代 SaaS 所需的所有功能。支付、美观的结账、管理面板、用户仪表板、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit: Laravel SaaS 启动套件
Rector logo

Rector

你的合作伙伴,实现无缝的 Laravel 升级,降低成本,加速创新,为成功企业服务。

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强你的 PHP 应用,使开发者能够轻松高效地构建应用。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。探索 MongoDB 的灵活、现代数据库如何改变你的 Laravel 应用。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到你的 Laravel 应用

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包为你的 Laravel 应用添加评论

阅读文章