Laravel-admin可以快速构建一个功能强大的后台,方便快速开发。

以下内容记录简单使用Laravel-admin,以及遇到小错误的解决方法。

Laravel-admin 依赖以下环境 需要提前装好(安装的Laravel-admin版本为1.5)

1
2
3
Apache+PHP+MYSQL (这个不作解释... 注意需要PHP 7+ 推荐使用phpstudy集成环境)
Laravel (5.5+)
Composer

以上环境如PHP/Composer需要设置好系统环境变量

先使用Composer命令安装Laravel ,命令如下(用cmd或者Git先进入到想要安装的目录)

1
composer create-project --prefer-dist laravel/laravel Laravel-admin 5.7.*

如果觉得安装速度慢,可以改一下镜像地址 参考:https://pkg.phpcomposer.com/

安装完成即显示:

然后在安装时指定的目录会有一个Laravel-admin文件夹 此时需要设置一下Apache 网站目录设置为Laravel-admin下的public

使用的是phpstudy集成环境,所以在phpstudy中点击[其他选项菜单]=>[站点域名管理] 设置内容:

接下来需要设置一下系统hosts,使用集成环境phpstudy可以在[其他选项菜单]=>[打开host]

也可以手动打开该文件,该文件路径为:

1
C:Windows\System32\driversetc\hosts

在hosts文件最底下添加一行代码:

1
127.0.0.1   www.laravel-admin.test

保存好文件,打开浏览器输入www.laravel-admin.test即可看到Laravel页面:

如果不能显示这个界面,请检查是否漏掉了上面某个步骤。

接下来需要设置Laravel的数据库

先使用浏览器打开localhost/phpmyadmin/ 此数据库管理系统是phpstudy自带了

使用账号/密码root登录进去

新建一个数据库:

数据库建好后,打开Laravel-admin目录,修改该目录下的.env文件,修改配置数据库参数:

接下来就是安装Laravel-admin,打开Git或者cmd指定到Laravel-admin目录下,然后输入以下代码(也可打开Laravel-admin官方 参考官方文档安装):

1
composer require encore/laravel-admin

完成后:

使用命令发布资源:

1
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

最后使用命令完成安装

1
php artisan admin:install

如果出现错误:

1
2
3
4
5
1   DoctrineDBALDriverPDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Spec
ified key was too long; max key length is 1000 bytes")
       
  2   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too lon
g; max key length is 1000 bytes")

解决方法:

修改laravel-admin/app/Providers目录下的AppServiceProvider.php文件:

代码:

1
2
use Illuminate\Support\Facades\Schema;
Schema::defaultStringLength(191);

再进入数据库管理系统 localhost/phpmyadmin/ 将laravel_admin数据库里面的表全删除

再执行命令:

1
php artisan admin:install

如果没有遇到错误,则无需修改文件也无需执行命令。

至此,Laravel-admin已经安装完成

可以在浏览器打开:www.laravel-admin.test/admin 访问进入后台。账号及密码为:admin

假如数据库中有一个文章表,如何使用Laravel-admin管理文章?

接下来简单使用Laravel-admin管理文章。

先在laravel_admin数据库建立一个文章表 表取名为:Article,

需要的字段有:

id(设置为主键并自增),

title(文章标题,VARCHAT类型长度32),

content(文章内容,TEXT类型),

updated_at(修改时间,TIMESTAMP类型),

created_at(创建时间,TIMESTAMP类型)

--此处犯了个错误,表名不该使用大写开头,应该使用全小写(开发规范) 大家引以为戒。

此时打开后台,会发现都是英文,需要修改配置文件(laravel-admin目录下)config/app.php:

找到代码:

1
'locale' => 'en',

修改为:

1
'locale' => 'zh-CN',

此时打开后台依然会发现左侧导航存在英文

点击左侧导航中的[Admin]=>[Menu],即可修改导航为中文(需要一个一个修改左侧导航)。

回到重点,需要创建一个菜单,为文章管理

此时刷新页面,会发现左侧导航有一个【文章管理】,如果点击【文章管理】会发现报404错误,这是因为没有设置路由。

打开文件(laravel-admin目录下)app/Admin/routes.php

添加一句代码:

1
$router->resource('/article', ArticleController::class);

进入laravel-admin目录下app/Admin/Controllers

复制控制器文件ExampleController.php为ArticleController.php

修改类名:

1
class ExampleController extends Controller

将类名修改为ArticleController

如:

1
class ArticleController extends Controller

创建文章表模型,在cmd或者Git使用命令:

1
php artisan make:model Article

此时会生成一个名为Article.php的文件并存放于laravel-admin目录下app目录中。

需要为此文件的Article类中添加代码:

1
protected $table 'Article';

添加后Article.php文件的代码如:

1
2
3
4
5
6
7
8
9
10
<?php
 
namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class Article extends Model
{
    protected $table 'Article';
}

继续修改laravel-admin目录下app/Admin/Controllers/ArticleController.php文件

将所有写着YourModel的地方修改为Article

别忘了需要在文件顶部引入文章模型,引入代码:

1
use App\Article;

此时后台左侧导航的文章管理已经能正常打开不会报404错误

为了这个界面好看点,在app/Admin/Controllers/ArticleController.php文件的grid函数修改如下:

1
2
3
4
5
6
7
8
9
10
11
protected function grid()
{
    $grid new Grid(new Article);
 
    $grid->id('ID')->sortable();
    $grid->title('文章标题');
    $grid->created_at('创建时间');
    $grid->updated_at('修改时间');
 
    return $grid;
}

此时刷新界面再点击右上角【新建】

需要修改form函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
protected function form()
{
    $form new Form(new Article);
 
    $form->text('title','文章标题');
    $form->textarea('content','文章内容');
 
    $form->display('id''文章ID');
    $form->display('created_at''创建时间');
    $form->display('updated_at''修改时间');
 
    return $form;
}

此时再刷新页面,发现有了一些组件,可以正常写文章并提交保存到数据库。

返回到文章管理的页面,点击右侧【操作】中的“眼睛”按钮查看文章详情,发现并没有文章详情,这是因为需要修改detail函数:

1
2
3
4
5
6
7
8
9
10
11
12
protected function detail($id)
{
    $show new Show(Article::findOrFail($id));
 
    $show->id('文章ID');
    $show->title('文章标题');
    $show->content('文章内容');
    $show->created_at('创建时间');
    $show->updated_at('修改时间');
 
    return $show;
}

laravel-admin目录下app/Admin/Controllers/ArticleController.php控制器全部代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
 
namespace AppAdminControllers;
 
use App\Http\Controllers\Controller;
use Encore\Admin\Controllers\Has\Resource\Actions;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Layout\Content;
use Encore\Admin\Show;
use App\Article;
 
class ArticleController extends Controller
{
    use Has\Resource\Actions;
 
    /**
     * Index interface.
     *
     * @param Content $content
     * @return Content
     */
    public function index(Content $content)
    {
        return $content
            ->header('Index')
            ->description('description')
            ->body($this->grid());
    }
 
    /**
     * Show interface.
     *
     * @param mixed   $id
     * @param Content $content
     * @return Content
     */
    public function show($id, Content $content)
    {
        return $content
            ->header('Detail')
            ->description('description')
            ->body($this->detail($id));
    }
 
    /**
     * Edit interface.
     *
     * @param mixed   $id
     * @param Content $content
     * @return Content
     */
    public function edit($id, Content $content)
    {
        return $content
            ->header('Edit')
            ->description('description')
            ->body($this->form()->edit($id));
    }
 
    /**
     * Create interface.
     *
     * @param Content $content
     * @return Content
     */
    public function create(Content $content)
    {
        return $content
            ->header('Create')
            ->description('description')
            ->body($this->form());
    }
 
    /**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        $grid new Grid(new Article);
 
        $grid->id('ID')->sortable();
        $grid->title('文章标题');
        $grid->created_at('创建时间');
        $grid->updated_at('修改时间');
 
        return $grid;
    }
 
    /**
     * Make a show builder.
     *
     * @param mixed   $id
     * @return Show
     */
    protected function detail($id)
    {
        $show new Show(Article::findOrFail($id));
 
        $show->id('文章ID');
        $show->title('文章标题');
        $show->content('文章内容');
        $show->created_at('创建时间');
        $show->updated_at('修改时间');
 
        return $show;
    }
 
    /**
     * Make a form builder.
     *
     * @return Form
     */
    protected function form()
    {
        $form new Form(new Article);
 
        $form->text('title','文章标题');
        $form->textarea('content','文章内容');
 
        $form->display('id''文章ID');
        $form->display('created_at''创建时间');
        $form->display('updated_at''修改时间');
 
        return $form;
    }
}

至此,文章管理中的CRUD(增删查改)均实现。

但仔细看,后台中的新建文章的文章内容使用的是textarea而不是富文本编辑器。

官方文档有详细使用富文本编辑器的教程:https://laravel-admin.org/docs/zh/model-form-field-management

后续如果有需要再写富文本编辑器的文章吧。

简单使用Laravel-admin构建一个功能强大的后台管理的更多相关文章

  1. 推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager

    我们在本地启动Tomcat服务器后,用localhost:访问: 再点Manager App,即可进入Tomcat自带的Manager这个应用,此处可以单独部署/卸载每一个应用.可以看到在Manage ...

  2. cURL 是一个功能强大的PHP库。

    使用PHP的cURL库可以简单和有效地去抓网页.你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了.无论是你想从从一个链接上取部分数据,或是取一个XML文件并把 ...

  3. 整合了一个功能强大完善的OA系统源码,php全开源 界面漂亮美观

    整合了一个功能强大完善的OA系统源码,php全开源界面漂亮美观.需要的同学联系Q:930948049

  4. WebLech是一个功能强大的Web站点下载与镜像工具

    WebLech是一个功能强大的Web站点下载与镜像工具.它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为.WebLech有一个功能控制台并采用多线程操作. http://sour ...

  5. SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件

    SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件. Why? 下拉刷新这样的控件.想必大家用的太多了,比方使用非常多的XListView等. 近期.项目中非常多列表都 ...

  6. 高效、易用、功能强大的 api 管理平台

    前言导读 实际环境的需求可以说是:只有你没想到,没有实现不了的,征对于目前实际开发.测试.生产等环境中,需要用到各类的接口可达几十.甚至上百个,因此,必须需要一个统一管理的工具平台来统一管理这类接口, ...

  7. 写了一个vue+antdv的后台管理模板

    1,项目简介 写在前面===>这是一个vue+antdv的后台管理模板 项目地址: https://github.com/BaiFangZi/vue-antd-manage 1.1,概述 ​ 最 ...

  8. 强烈推荐一款功能强大的Tomcat 管理监控工具

    专注于Java领域优质技术号,欢迎关注 原创: 侯树成 Tomcat那些事儿 启动 Tomcat完毕 ,有些时候总会打开浏览器 http://localhost:8080/ 去验证你的Tomcat是否 ...

  9. 8 功能6:后台管理页面,编辑文章,xss攻击

    1.后台管理页面之文本编辑 # 后台管理url re_path(r'^cn_backend/$', views.cn_backend, name='cn_backend'), re_path(r'^c ...

随机推荐

  1. Distinctive Character

    Distinctive Character Sol bfs寻找最优解. 考虑一开始把他给的状态加进队列里,这些状态的答案都是0. 每次枚举不同的一位拓展,同时要保证这个新状态没有出现过. 效率O(2^ ...

  2. STM32时钟配置方法详解

      一.在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz. ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源, ...

  3. thinkphp5 redis使用

    参数参考位置:thinkphp\library\think\cache\driver class Redis extends Driver { protected $options = [ 'host ...

  4. 踩坑记之字体图标在webpack中

    首先介绍一个还不错的字体图标库: font-awesome 是在发现bootstrap在npm下载后没有font包以后重新找的字体库,内容还挺丰富的,好像还有动态图,感兴趣的可以看一下 我的环境是we ...

  5. vim中 E212:无法打开并写入文件 的解决办法

    因为centos7刚安装的时候是无法上网的,所以,需要去配置一下ifcfg-ens33文件,但实际上这个文件是只读的文件,root也无法去更改内容,这时候保存的时候需要使用 w ! sudo tee ...

  6. UITableView 支持左右滑动(一)

    原理如下: SwipeTableView subView 1 :  UIScrollView作为容器, 主要负责左右滑动, 每个tableView的顶部设置相同的contentInset subVie ...

  7. USACO 6.5 章节 世界上本没有龙 屠龙的人多了也便有了

    All Latin Squares 题目大意 n x n矩阵(n=2->7) 第一行1 2 3 4 5 ..N 每行每列,1-N各出现一次,求总方案数 题解 n最大为7 显然打表 写了个先数值后 ...

  8. leetcode.分治.241为运算表达式设计优先级-Java

    1. 具体题目 给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果.你需要给出所有可能的组合的结果.有效的运算符号包含 +, - 以及 * . 示例 1: 输入: & ...

  9. centos 7.2 离线安装 gcc

    1.查看有没有挂载 centos 7.2 的镜像源文件 2.如果没有就通过服务端挂载 如果不知怎么挂载,就解压CentOS-7-x86_64-DVD-1511.iso 镜像文件,在Packages找到 ...

  10. RabbitMq--4--集群(转载)

    RabbitMQ消息服务用户手册 1 基础知识 1.1 集群总体概述 Rabbitmq Broker集群是多个erlang节点的逻辑组,每个节点运行Rabbitmq应用,他们之间共享用户.虚拟主机.队 ...