laravel-admin 从零开始

boomck 2019-09-26 PM 1270℃ 0条

基础环境配置

首先你要先下载一套 laravel 框架 版本为你所要使用的 laravel-admin 对应版本所推荐的
我这里选用了laravel-admin 1.5的版本 这里要求是使用 php7+laravel5.5+
然后我本机环境是php 7.3.2 ,laravel 5.8.*
并且配置好数据库信息 即可真正开始安装laravel-admin了

安装laravel-admin

通过以下命令 下载laravel-admin包 并发布资源

composer require encore/laravel-admin
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

然后到config/admin.php文件中修改时区语言

然后通过以下命令生成数据库、controller等 以完成安装

php artisan admin:install

使用

php artisan serve

启动服务后,在浏览器打开访问

http://localhost:8000/admin

并使用 用户名 admin 和密码 admin 即可进入后台
到这里 你已经完成了laravel-admin的安装

初步使用

在创建控制器之前 需要提前设计好并创建数据库 以及模型
再使用命令

php artisan admin:make ControllerName --model=App\\modelName

创建一个控制器
并且在控制台还会显示一个路由项
你需要将这个路由项填到 app\admin\route.php
这样你就有了对应model的基础增删改查功能

在这个控制器中有三个自动生成的函数
第一个 Grid
对应数据列表 --规划数据列表显示的列数据
第二个 show
对应详情页 --规划显示的详情数据
第三个 form
对应表单 --规划创建和修改页面的数据

进阶

在表单提交后修改表单数据

laravel-admin在为表单提供了三个回调方法

在表单提交前调用
$form->submitted()
保存前回调 这个方法就可以用来修改表单提交后的数据
$form->saving()
保存后回调 这个方法可以用来获取刚存储的数据
$form->saved()

//这里的需求是 将提交的摘要文本进行截取 防止存储时超过数据库字段上限
$form->saving(function (Form $form){
            $form->abstract = mb_substr($form->abstract,0,85);
            $form->abstract_en = mb_substr($form->abstract_en,0,255);
        });

富文本编辑器

富文本编辑器我测试了两种 分别是wangeditor 和 ckeditor

ckeditor在我这个需求中遇到了一点bug 但我以我的能力无法修复所以转向wang-editor

ckediot的bug是 在一个页面放两个富文本编辑器 在上传图片的时候 第二个编辑器无法自动获取api返回的图片链接 导致添加图片失败 (应该是js问题) 并且界面相比wang-editor丑 操作也更复杂一些 对于我的需求wang-editor更好用

//这个是上传文件到oss的代码
class UploadApiController extends Controller
{
    public function upimage(Request $request) {
        $files = $request->file("wangpic");
        $res = ['errno' => 1, 'errmsg' => '上传图片错误'];
        $data = [];
        foreach($files as $key => $file) {
            $ext = strtolower($file->extension());
            $exts = ['jpg', 'png', 'gif', 'jpeg'];
            if(!in_array($ext, $exts)) {
                $res = ['errno' => 1, 'errmsg' => '请上传正确的图片类型,支持jpg, png, gif, jpeg类型'];
                return json_encode($res);
            } else {
                $path = $file->store('images');
                //path可能需要修改
                $url = Storage::disk('oss')->url($path);
                $data[] = $url;
            }
        }
        $res = ['errno' => 0, 'data' => $data];
        return json_encode($res);
    }
}

参考链接:
wang-editor
ckeditor

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~