基础环境配置
首先你要先下载一套 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