V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kchum
V2EX  ›  问与答

如何优( Tou)雅( Lan)做后台的 CURD 模板?

  •  
  •   kchum · 2015-04-03 12:05:32 +08:00 · 1741 次点击
    这是一个创建于 3318 天前的主题,其中的信息可能已经有所发展或是发生改变。

    怎样减少后台 CURD 模板的编写,我是这么想的

    • 后台是单页应用,使用AngularJS,API 请求返回 JSON,JSON 里定义好字段的类型,展示方式,数据源等,例如下面是列表,config 和 operation 定义好字段操作,然后 JS 库(不知道有没有这样类似的库,貌似自己写也可以)输出到页面。
    <?php
            $data = [
                'config' => [
                    ['field' => 'id', 'title' => '编号', 'display' => 'Text',],
                    ['field' => 'title', 'title' => '标题', 'display' => 'Text'],
                    ['field' => 'url', 'title' => '链接', 'display' => 'Link'],
                    ['field' => 'images', 'title' => '图片', 'display' => 'Image'],
                    ['field' => 'created_at', 'title' => '创建日期', 'display' => 'Text'],
                ],
                'operation' => [
                    ['text' => '编辑', 'url' => '/user/edit', 'parameters' => ['id' => ':id', 'title' => ':title']],
                    ['text' => '删除', 'url' => '/user/delete', 'parameters' => ['id' => ':id']],
                ],
                'data' => [
                    ['id' => 1, 'title' => '标题1', 'url' => 'https://baidu.com', 'images' => 'http://example.com/z.png', 'created_at' => '2014-03-18']
                ],
            ];
            echo json_encode($data);
    
    • 上面只是举例列表,还有编辑等,可以定义好数据格式,显示方式(文本框,密码框等等)等。

    • 这个方案仅适用于普通的 CURD,对于高度个性化的,还是不可避免用模板。但这毕竟不用每增加一个 Model 就要加一个 增改列表 4个模板,对于纯后端方便(tou)很多(lan).

    那么问题来了

    • 各位还有没有更优雅的方法去减少时间做模板,只要写好 API 就好?

    • 有没有我上文臆想出来的 JS 库?对前端库不熟,没查到。。前端渣就只能这样子了。。

    感谢各位!

    3 条回复    2015-04-03 13:11:48 +08:00
    webjin
        1
    webjin  
       2015-04-03 12:18:12 +08:00
    灌篮高手。
    mercurylanded
        2
    mercurylanded  
       2015-04-03 12:25:01 +08:00
    用meteor

    或者ror这样的框架
    loading
        3
    loading  
       2015-04-03 13:11:48 +08:00 via Android
    meteor 就很好,但是似乎支持的数据库太少。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2179 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:15 · PVG 19:15 · LAX 04:15 · JFK 07:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.