- wiki
- 安装教程
- 视频地址(字幕版),视频是在docker环境下面操作的,如果不会docker,可以自己用自己的本地环境即可。
- LNMP Dockerfile地址
- php = 5.6
- mysql
- redis
- 自动布局(已经在生产环境上面使用,等稳定了再合并。)
- 写单元测试
- 计划在2月份发布第一个版本,如果单元测试没有写完或者单元测试没有测试完毕,则会跳票,希望理解。(跳票中)
- 注入 控制器
use App\Http\Controllers\Admin\HtmlBuilderController;
protected $html_builder; /** * 构造方法 * * @author yangyifan <yangyifanphp@gmail.com> */ public function __construct(HtmlBuilderController $html_builder) { parent::__construct(); $this->html_builder = $html_builder; } /** * 获得后台用户 * * @return Response * @author yangyifan <yangyifanphp@gmail.com> */ public function getIndex(Request $request) { return $this->html_builder-> builderTitle('后台用户列表')-> builderSchema('id', 'id')-> builderSchema('admin_name', '管理员名称')-> builderSchema('limit_name','角色名称')-> builderSchema('mobile', '手机号码')-> builderSchema('state_name', '状态')-> builderSchema('last_login', '最后一次登陆时间')-> builderSchema('create_date', '创建时间')-> builderSchema('handle', '操作')-> builderSearchSchema('admin_name', '管理员名称')-> builderBotton('增加后台用户', createUrl('Admin\Admin\AdminInfoController@getAdd'))-> builderJsonDataUrl(createUrl('Admin\Admin\AdminInfoController@getSearch',[ 'limit_id' => $request->id ]))-> builderList(); } /** * 搜索 * * @param Request $request * @author yangyifan <yangyifanphp@gmail.com> */ public function getSearch(Request $request) { //接受参数 $search = $request->get('search', ''); $sort = $request->get('sort', 'id'); $order = $request->get('order', 'asc'); $limit = $request->get('limit',0); $offset = $request->get('offset', config('config.page_limit')); $limit_id = $request->limit_id; //admin_info 表名 $admin_info_table_name = tableName('admin_info'); //解析params parse_str($search); //组合查询条件 $map = []; if (!empty($limit_id)) { $map[$admin_info_table_name . '.limit_id'] = $limit_id; } if (!empty($admin_name)) { $map[$admin_info_table_name . '.admin_name'] = ['like','%'.$admin_name.'%']; } $data = AdminInfoModel::search($map, $sort, $order, $limit, $offset); echo json_encode([ 'total' => $data['count'], 'rows' => $data['data'], ]); } /** * 编辑角色 * * @param int $id * @author yangyifan <yangyifanphp@gmail.com> */ public function getEdit(Request $request) { $infos = AdminInfoModel::find($request->get('id')); return $this->html_builder-> builderTitle('编辑后台用户')-> builderFormSchema('admin_name', '管理员名称', $type = 'text')-> builderFormSchema('password', '登录密码', $type = 'password', '', '', '', '')-> builderFormSchema('password_confirmation', '确认密码', $type = 'password', '', '', '', '')-> builderFormSchema('limit_id', '角色', $type = 'select', $default = '', $notice = '', $class = '', $rule = '*', $err_message = '', AdminInfoModel::adminInfoLimitName(), '', 'name')-> builderFormSchema('mobile', '手机', $type = 'text', $default = '', $notice = '', $class = '', $rule = '', $err_message = '', $option = '', $option_value_schema = '')-> builderFormSchema('state', '状态', 'radio', '', '', '', '', '', [1=>'开启', '2'=>'关闭'] ,$infos->state)-> builderConfirmBotton('确认', createUrl('Admin\Admin\AdminInfoController@postEdit'), 'btn btn-success')-> builderEditData($infos)-> builderEdit(); } /** * 处理更新角色 * * @author yangyifan <yangyifanphp@gmail.com> */ public function postEdit(AdminInfoRequest $request) { $data = $request->except('password_confirmation'); $Model = AdminInfoModel::findOrFail($data['id']); if (empty($data['password'])) { $data['password'] =$Model->password; }else{ $data['password'] = bcrypt($data['password']); } $Model->update($data); //更新成功 return $this->response(self::SUCCESS_STATE_CODE, trans('response.update_success'), [], true, createUrl('Admin\Admin\AdminInfoController@getIndex')); } /** * 获得后台菜单 * * @return Response * @author yangyifan <yangyifanphp@gmail.com> */ public function getIndex() { return $this->html_builder-> builderTitle('后台菜单列表')-> builderSchema('id', 'id')-> builderSchema('menu_name', '菜单名称')-> builderSchema('parent_name','父级菜单名称')-> builderSchema('handle', '操作')-> builderBotton('增加后台菜单', createUrl('Admin\Admin\AdminMenuController@getAdd'))-> builderTreeData(AdminMenuModel::getAll())-> builderTree(); } /** * 编辑商品信息 * * @param Request $request * @author yangyifan <yangyifanphp@gmail.com> */ public function getEdit(Request $request) { $goods_info = GoodsModel::getGoodsInfo($request->get('id')); return $this->html_builder->builderTabTitle(trans('goods.goods_title14')) ->builderTabSchema( $this->html_builder-> builderTitle(trans('goods.goods_title15'))-> builderFormSchema('goods_name', trans('goods.goods_title4'))-> builderFormSchema('id', 'id', 'hidden')-> builderConfirmBotton(trans('base.comfirm_add_data'), '', 'btn btn-success')-> builderEditData($goods_info) )->builderTabSchema( $this->html_builder-> builderTitle(trans('goods.goods_title32'))-> builderFormSchema('meta_title', trans('goods.goods_title33'))-> builderFormSchema('meta_keywords', trans('goods.goods_title34'), 'textarea')-> builderFormSchema('meta_description', trans('goods.goods_title35'), 'textarea')-> builderConfirmBotton(trans('base.comfirm_add_data'), '', 'btn btn-success')-> builderEditData($goods_info) )->builderBotton(trans('base.return'), createUrl('Admin\Goods\GoodsController@getIndex'), 'glyphicon glyphicon-arrow-left') 还有一些细节没有完善好,所以没有放出来。
- 代码在继续完善中,已经用于生产环境使用,很多细节待完善,文档也会慢慢更新的!
- 需要下载一份sql执行到你的本地,然后使用这份sql的数据,sql地址保存在"资料文件"--> laravel.sql
- email:yangyifanphp@gmail.com
- 账户:yangyifan,密码:qiqi..
- 线上测试地址
- 用laravel自己创建一个属于自己的后台(一)之 构建后台登陆模块
- 用laravel自己创建一个属于自己的后台(二)之 构建权限角色模块
- 用laravel自己创建一个属于自己的后台(三)之 压缩网站静态文件
MIT






