让你优雅的写代码的Laravel-admin插件

让你优雅的写代码的Laravel-admin插件

如何优雅的写代码,我想是每位程序员的心声。自从15年初第一次接触 Laravel 4.2 开始,我就迷上使用 Laravel 框架了。我一直都想找个时间好好写写有关 Laravel 的使用文章,由浅入深的介绍 Laravel 框架。

今天通过使用 laravel-admin 插件,来简单说说怎么优雅的写 Laravel 代码。

创建 Laravel 项目

只要跟着官方文档走,创建一个 Laravel 项目还是很简单的:

// 使用 Composer 下载 Laravel 安装程序composer global require "laravel/installer"// 创建 web 项目laravel new web

具体配置数据库等:略

安装 Laravel 看官网:https://d.laravel-china.org/docs/5.5/installation

安装 laravel-admin

laravel-admin 是一个可以快速帮你构建后台管理的工具,它提供的页面组件和表单元素等功能,能帮助你使用很少的代码就实现功能完善的后台管理功能。

注:当前版本(1.5)需要安装 PHP 7+和 Laravel 5.5

看看 laravel-admin 的特性:

·内置用户和权限系统

·model-grid 支持快速构建数据表格

·model-form 支持快速构建数据表单

·model-tree 支持快速构建树状数据

·内置 40+ 种 form 元素组件、以及支持扩展组件

·支持 Laravel 的多种模型关系

·mysql、mongodb、pgsql 等多数据库支持

·支持引入第三方前端库

·数据库和 artisan 命令行工具的 web 实现

·支持自定义图表

·多种常用 web 组件

·支持本地和 oss 文件上传

有了这些功能,开发一个后台管理系统就变得相对简单了。

安装插件:

composer require encore/laravel-admin "1.5.*"// 发布资源:php artisan vendor:publish --provider="EncoreAdminAdminServiceProvider"// 安装php artisan admin:install

简单的三条命令,即可配置好一个简单的后台管理系统,账号和密码都是 admin

1567475798737767.png

代码主要集中在APPAdmin中

1567475813407252.png

相关推荐:《laravel教程》

默认系统提供一个 Dashboard 界面:

header('Test Dashboard');            $content->description('Description...');            $content->row(Dashboard::title());            $content->row(function (Row $row) {                $row->column(4, function (Column $column) {                    $column->append(Dashboard::environment());                });                $row->column(4, function (Column $column) {                    $column->append(Dashboard::extensions());                });                $row->column(4, function (Column $column) {                    $column->append(Dashboard::dependencies());                });            });        });    }}

结合界面和代码,可以看出界面主要分成这么几个部分:header、description、两个 row,后一个 row 包含三个 column 模块;具体的代码放在 Dashboard 代码中,如下:

 'PHP version',       'value' => 'PHP/'.PHP_VERSION],            ['name' => 'Laravel version',   'value' => app()->version()],            ['name' => 'CGI',               'value' => php_sapi_name()],            ['name' => 'Uname',             'value' => php_uname()],            ['name' => 'Server',            'value' => array_get($_SERVER, 'SERVER_SOFTWARE')],            ['name' => 'Cache driver',      'value' => config('cache.default')],            ['name' => 'Session driver',    'value' => config('session.driver')],            ['name' => 'Queue driver',      'value' => config('queue.default')],            ['name' => 'Timezone',          'value' => config('app.timezone')],            ['name' => 'Locale',            'value' => config('app.locale')],            ['name' => 'Env',               'value' => config('app.env')],            ['name' => 'URL',               'value' => config('app.url')],        ];        return view('admin::dashboard.environment', compact('envs'));    }    /**     * @return IlluminateContractsViewFactory|IlluminateViewView     */    public static function extensions()    {        $extensions = [            'helpers' => [                'name' => 'laravel-admin-ext/helpers',                'link' => 'https://github.com/laravel-admin-extensions/helpers',                'icon' => 'gears',            ],            'log-viewer' => [                'name' => 'laravel-admin-ext/log-viewer',                'link' => 'https://github.com/laravel-admin-extensions/log-viewer',                'icon' => 'database',            ],            'backup' => [                'name' => 'laravel-admin-ext/backup',                'link' => 'https://github.com/laravel-admin-extensions/backup',                'icon' => 'copy',            ],            'config' => [                'name' => 'laravel-admin-ext/config',                'link' => 'https://github.com/laravel-admin-extensions/config',                'icon' => 'toggle-on',            ],            'api-tester' => [                'name' => 'laravel-admin-ext/api-tester',                'link' => 'https://github.com/laravel-admin-extensions/api-tester',                'icon' => 'sliders',            ],            'media-manager' => [                'name' => 'laravel-admin-ext/media-manager',                'link' => 'https://github.com/laravel-admin-extensions/media-manager',                'icon' => 'file',            ],            'scheduling' => [                'name' => 'laravel-admin-ext/scheduling',                'link' => 'https://github.com/laravel-admin-extensions/scheduling',                'icon' => 'clock-o',            ],            'reporter' => [                'name' => 'laravel-admin-ext/reporter',                'link' => 'https://github.com/laravel-admin-extensions/reporter',                'icon' => 'bug',            ],            'translation' => [                'name' => 'laravel-admin-ext/translation',                'link' => 'https://github.com/laravel-admin-extensions/translation',                'icon' => 'language',            ],        ];        foreach ($extensions as &$extension) {            $name = explode('/', $extension['name']);            $extension['installed'] = array_key_exists(end($name), Admin::$extensions);        }        return view('admin::dashboard.extensions', compact('extensions'));    }    /**     * @return IlluminateContractsViewFactory|IlluminateViewView     */    public static function dependencies()    {        $json = file_get_contents(base_path('composer.json'));        $dependencies = json_decode($json, true)['require'];        return view('admin::dashboard.dependencies', compact('dependencies'));    }}

这样我们就把代码分块的组织在一起。具体布局类看:class Content implements Renderable

其它的静态资源文件放在 /public/vendor/laravel-admin 目录下

更多内容参考 laravel-admin 官网:

代码小浣熊 代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 51 查看详情 代码小浣熊

http://laravel-admin.org/docs/#/zh/

写一个 demo

有了这个 laravel-admin 插件,要写一个 movies 列表,只需要几个命令行就可以完成了,非常简单:

1.建立模型,并创建 Migrations:

php artisan make:model Movie -m

2.在 Migrations,增加一个字段:name

increments('id');            $table->string('name', 50)->unique();            $table->timestamps();        });    }    /**     * Reverse the migrations.     *     * @return void     */    public function down()    {        Schema::dropIfExists('movies');    }}

3.运行 Migrations,创建对应数据库:

php artisan migrate

4.有了数据表,就需要往表里插入 fake 数据,用于测试

// 使用该插件创建 fake 数据composer require fzaninotto/faker

5.建立 Seeder

php artisan make:seeder MovieTableSeeder

在该类中,建立1000条假数据:

<?phpuse IlluminateDatabaseSeeder;class MovieTableSeeder extends Seeder{    /**     * Run the database seeds.     *     * @return void     */    public function run()    {        //        $faker = FakerFactory::create();        for($i = 0; $i  $faker->name            ]);        }    }}

运行:

php artisan db:seed --class=MovieTableSeeder

是不是很简单,数据表直接填充 1000 条假数据:

1567475437(1).png

6.建立资源 Controller

php artisan admin:make MovieController --model=AppMovie

这样就直接有了基础的增删改查和 movie 列表功能的 Controller 了。

7.建立 route

$router->resource('movies', MovieController::class);

8.加入到 admin 的 menu 中

1567476038779117.png

其中路径处需要注意的是:

其中uri填写不包含路由前缀的的路径部分,比如完整路径是http://localhost:8000/admin/demo/users, 那么就填demo/users,如果要添加外部链接,只要填写完整的url即可,比如http://laravel-admin.org/.

上图也是加了左侧 movies 菜单的效果。

这就完成了简单的 movie 资源的后台管理了,在浏览器输入链接:

http://web.app/admin/movies

就能看到一个较为完整的 movie 列表:

1567476065970955.png

具体有新增、导出、筛选、操作 (删除)、撤销、分页、修改、删除等常规功能,如下几个截图:

1567476086322300.png1567476095727208.png1567476113470912.png

1567476198270457.png

总结

有了 Laravel 和 laravel-admin,基本不用写什么代码,敲敲几个命令就可以完成一个「功能比较齐全」的资源操作后台。极大的方便了我们的开发。

总体命令行和代码如下:

php artisan make:model Movie -mphp artisan migratecomposer require fzaninotto/fakerphp artisan make:seeder MovieTableSeederphp artisan db:seed --class=MovieTableSeederphp artisan admin:make MovieController --model=AppMovie$router->resource('movies', MovieController::class);

框架和开源插件,有时候确实是能方便我们开发,所以寻找优质的框架和开源库也是促进我们生产力的。

laravel-admin 代码是如何组织的,可以具体参考网站开发。先根据官网的介绍,利用好 laravel-admin,然后学习它的源码和代码设计,最后取其精华,为你所用。

以上就是让你优雅的写代码的Laravel-admin插件的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/212521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月3日 13:18:03
下一篇 2025年11月3日 13:24:20

相关推荐

  • 探索C++框架中的插件和扩展性

    在 c++++ 框架中,插件和扩展性使构建灵活且可扩展的应用程序成为可能。插件是独立的代码模块,可动态加载以扩展框架功能,而扩展性机制(如钩子函数和反射)允许自定义或替换框架组件。通过示例,我们展示了如何使用插件(如 websocket 支持插件)和扩展性来增强 c++ 框架。 探索 C++ 框架中…

    2025年12月18日
    000
  • Go程序运行时提示插件符号未定义怎么办?

    go程序运行时提示插件符号未定义,通常是因为插件编译、加载或使用方式上存在问题。1. 确保插件使用go build -buildmode=plugin命令正确编译;2. 检查主程序是否通过plugin.open()并传入正确的.so文件路径加载插件;3. 确认go版本为1.8及以上以支持插件机制;4…

    2025年12月15日 好文分享
    000
  • Go运行时提示plugin加载失败可能是什么原因?

    go运行时提示plugin加载失败通常由编译、环境或版本问题引起。首先,确保plugin与主程序使用相同的go版本编译,可通过go version检查;其次,确认编译plugin时使用了-buildmode=plugin参数;第三,检查动态链接库是否在系统路径下,并配置好ld_library_pat…

    2025年12月15日 好文分享
    000
  • pycharm怎么安装插件

    安装步骤:1、打开PyCharm,进入菜单栏中的“File”选项;2、选择“Settings”或者使用快捷键Ctrl + Alt + S来打开设置窗口;3、选择“Plugins”选项;4、搜索要安装的插件,也可以选择已安装的插件进行管理;5、若要安装新的插件,点击页面右上角的“Browse repo…

    2025年12月13日
    000
  • pycharm插件在哪

    安装步骤:1、打开PyCharm,并点击顶部菜单栏中的“File”选项;2、选择“Settings”;3、在设置窗口中,选择“Plugins”选项;4、点击“Browse repositories…”按钮,将看到所有可用的插件;5、在搜索框中输入要安装的插件的名称,然后点击“搜索按钮”;6、找到要安…

    2025年12月13日
    000
  • Java中如何实现插件 分析SPI机制

    java中实现插件的核心技术之一是spi(service provider interface),它通过接口的实现类在运行时被发现和加载,从而实现功能模块化。具体步骤为:1. 定义一个接口;2. 创建该接口的一个或多个实现类;3. 在meta-inf/services目录下创建以接口全限定名命名的文…

    2025年12月5日 java
    000
  • 2012年最有用的50款 jQuery 插件集锦《表单篇》

    这篇文章继续向大家分享一批实用的jQuery插件,今天带来的是网站项目中最常用的表单插件。这是一个系列的文章,将向大家分享50款最具创新的,同时也是最有用的 jQuery 插件,这些插件分成以下类别:网页布局插件,导航插件,表格插件,滑块和转盘插件,图表   这篇文章继续向大家分享一批实用的 jqu…

    2025年12月2日
    000
  • UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】

    UC浏览器可通过扩展中心安装官方插件实现广告拦截、翻译等功能,操作路径为:打开菜单→进入扩展中心→搜索并安装插件;高级用户可手动导入.ucrx或.zip格式的第三方扩展,需开启开发者模式加载;若原生支持有限,还可将常用工具网页添加到桌面并嵌入书签栏,形成虚拟插件快捷入口。 如果您希望在UC浏览器中增…

    2025年12月2日 电脑教程
    000
  • Composer如何利用其内部的Runtime API编写自定义插件

    Composer插件通过实现PluginInterface并监听事件扩展功能,需设置type为composer-plugin并指定extra.class。使用EventDispatcher绑定post-install-cmd等事件,在activate中访问Composer实例的服务如Config、I…

    2025年12月1日
    000
  • 值得收藏的12个Visual Studio Code插件

    本篇文章给大家介绍12个vscode插件。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历…

    2025年11月27日 开发工具
    100
  • 夸克浏览器有插件吗_夸克浏览器扩展中心与插件安装说明

    夸克浏览器支持插件扩展,用户可通过“智能助手”入口访问插件精选页面,安装如自动比价、去广告等工具,并在“我的插件”中进行启用、停用或移除管理。 如果您在使用夸克浏览器时希望增强其功能,可能会关注是否支持插件扩展。目前夸克浏览器提供了部分插件支持,可通过内置入口进行安装和管理。以下是具体的操作方法: …

    2025年11月25日 电脑教程
    000
  • composer的–no-plugins选项有什么作用

    –no-plugins 选项可禁用所有插件,确保 Composer 命令纯净运行。它能排除插件干扰、提升执行效率并增强安全性,适用于调试问题、自动化环境及不可信场景。 Composer 的 –no-plugins 选项用于在执行命令时禁用所有插件的加载和运行。 防止插件干扰操…

    2025年11月25日 开发工具
    000
  • 推荐一些VSCode的好用插件

    相关推荐:《vscode基础教程》 作为一名从业多年的码农,总结一下用过的好用的插件(仅代表个人意见) Auto Close Tag:见名知意,帮您自动书写尾标签,对于前端开发来说绝对是福音,除了提高书写速度,同时也可避免一些由于忘记尾标签产生的bug,如下: Auto Import:从简介 Wor…

    2025年11月25日 开发工具
    200
  • 提高前端开发效率的vscode必备插件(分享)

    本篇文章给大家分享一些提高前端开发效率的vscode必备插件。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 【推荐学习:《vscode教程》】 vscode前端必备插件-提高开发效率 1、Auto Close Tag  立即学习“前端免费学习笔记(深入)”;  自动闭合HTML/…

    2025年11月25日 开发工具
    000
  • 2022年前端小白必看VSCode常用插件和好用配置总结

    本篇文章给大家总结分享一些vscode常用插件和好用配置(超详细),前端小白必看,希望对大家有所帮助! 本人学习前端也有一年多了,vscode从一开始就一直都陪伴在身边,作为主力开发工具。从中我也接触过一些形形色色的插件还有一些配置。对此我想写篇文章去介绍vscode 的插件和一些使用。希望可以给刚…

    2025年11月25日 开发工具
    000
  • Linux编辑器vim的配置

    vim配置文件的位置和设置方法 Vim的配置文件通常位于系统的不同位置,具体取决于用户的需求。以下是详细的介绍和配置方法。 系统公共配置文件的位置 在系统的/etc/目录下,有一个名为vimrc的文件。这是一个系统级的Vim配置文件,适用于所有用户。 [yui@iZbp19b5lvg8xtpf1tz…

    2025年11月25日 运维
    000
  • 插件依赖缺失导致功能失效的诊断流程

    插件依赖缺失会导致功能失效,解决方法包括分析错误信息、检查配置文件和日志、使用依赖管理工具安装依赖、确保系统层面依赖正确安装、查阅文档确认版本兼容性、使用虚拟环境隔离依赖、重新安装插件、检查权限。1. 首先阅读错误信息以识别缺失的依赖项;2. 检查配置文件如 package.json 或 requi…

    2025年11月23日
    100
  • UC浏览器怎么安装插件或扩展_UC浏览器安装插件(扩展程序)指南

    可通过扩展中心安装、手动导入或PC同步三种方式在UC浏览器中添加插件。首先打开UC浏览器,进入“我的”页面点击“扩展中心”,搜索所需插件并安装;其次可下载.crx或.zip文件后,在地址栏输入uc://extensions/并开启开发者模式进行本地加载;最后还可通过电脑端UC浏览器安装后登录同一账号…

    2025年11月14日
    000
  • 8个顶级 VSCode 扩展插件

    微软的 vs (visual studio) code 是一个免费的开源代码编辑器,最近越来越受欢迎。它非常轻巧、灵活,同时也提供了很多强大的功能。它支持绝大多数流行的编程语言,包括php、javascript、c++ 等。 VS Code 是跨平台的。它不仅能用于 Windows 平台,同时也提供…

    2025年11月14日 开发工具
    000
  • vscode中的eslint插件不起作用

    最近在用vue进行开发,但是vscode中的eslint插件装上之后不起作用。 解决方法: 1、vsCode打开“设置”,选择”settings.json” 2、输入如下脚本 “eslint.validate”: [ “javascript”, “javascriptreac…

    2025年11月13日
    000

发表回复

登录后才能评论
关注微信