ThinkPHP开发后台能有多快

231 阅读1分钟

简介

后台开发,大量重复的写列表,表单. 枯燥无聊

一直在找配置方式开发后台, 直到遇到了 Syfmony 的 EasyAdminBundle ;

简单的列表,表单字段,即可生成功能完善的 CRUD 操作. 而且足够灵活. 

80%重复的工作配置来完成, 20% 特别的业务也能够方便的扩展. 

最主要的是,它不是一个呆板的.  不管是列表,表单 导航,布局 都很容易通过模板继承来轻易实现自己想要的效果.  

使用用一段时间后,简直不要太香. 

奈何...  国内 ThinkPhp 保有量太大 ,很多公司都在使用.

找了很久没有想要的.  就自己开发了一个.

示例

开发一个列表

    protected function configListField(ListField $list)
    {
        $list
            ->addField('id', 'ID', ListText::class)
            ->addField('intro_cover', '封面', ListImage::class)
            ->addField('name', '名称', ListText::class)
            ->addField('store_num', '店铺数量', ListText::class)
            ->addField('level', '代理等级', ListSelect::class,[
                'options'=>$this->levels
            ])
            ->addField('contact_name', '联系人', ListText::class)
            ->addField('contact_mobile', '联系电话', ListText::class)
            ->addField('create_time', '入驻时间', ListDateTime::class)
            ->addField('expired_time', '过期时间', ListDateTime::class)

        ;
    }

开发一个表单

 protected function configFormField(PageForm $page)
    {
        $page
            ->addField('name', '名称', FormText::class)
            ->addField('intro_cover', '封面', FormUpload::class)
            ->addField('level', '代理等级', FormSelect::class,[
                'options'=>$this->levels
            ])
            ->addField('contact_name', '联系人', FormText::class)
            ->addField('contact_mobile', '联系电话', FormText::class)
            ->addField('contact_qq_wx', 'QQ 微信', FormText::class)
            ->addField('contact_addr', '联系地址', FormText::class)
            ->addField('expired_time', '过期时间', FormDateTime::class,[
                'in_format'=>'strtotime'
            ])
            ->addField('intro_title', '简介', FormTextarea::class)
            ->addField('intro_desc', '详细介绍', FormEditor::class)
            ;
    }

配置导航

    public function configMenu(Menu $menu)
    {
        $menu->setItems([

            MenuItem::addItem('首页', 'index/index',['icon'=>'layui-icon layui-icon-home']),

            MenuItem::addItem('商户', 'javascript:')->setChildren([
                MenuItem::addItem('代理列表', 'agent/lists', ['icon' => 'fa fa-fire']),
                MenuItem::addItem('代理充值记录', 'agentPayLog/lists', ['icon' => 'fa fa-fire']),
                MenuItem::addItem('商户列表', 'store/lists', ['icon' => 'fa fa-fire']),
                MenuItem::addItem('商户桌号', 'storeTable/lists', ['icon' => 'fa fa-fire']),
            ]),


            MenuItem::addItem('系统', 'javascript:')->setChildren([
                MenuItem::addItem('系统配置', 'config/lists'),
            ]),


        ]);

    }

同样,  html 模板 css 等等 很多很多的功能都是能够通过配置 或者继承来实现重写的. 

更多详细查看  thinkeasyadmin.wansh.cc/