kchum
V2EX  ›  问与答

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

  •  
  •   kchum · Apr 3, 2015 · 2209 views
    This topic created in 4152 days ago, the information mentioned may be changed or developed.

    怎样减少后台 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 replies    2015-04-03 13:11:48 +08:00
    webjin
        1
    webjin  
       Apr 3, 2015
    灌篮高手。
    mercurylanded
        2
    mercurylanded  
       Apr 3, 2015
    用meteor

    或者ror这样的框架
    loading
        3
    loading  
       Apr 3, 2015 via Android
    meteor 就很好,但是似乎支持的数据库太少。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2651 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 11:17 · PVG 19:17 · LAX 04:17 · JFK 07:17
    ♥ Do have faith in what you're doing.