🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 模版模型介绍 项目开发中,模版调用数据内容,经常要操作数据库,如:调用最新文章列表,推荐内容,以及首页或者封面页面内容集合的调用。模版模型就是为了方便操作数据库查询进行的封装,可以直接在模版中调用数据库的内容,无需再经过控制器的处理。 # 模版模型标签调用说明 模块名:model 可用参数: `table`:要查询的主表比如 `table = "user"` ~~~ {%mdoel data="userlist",table="user"%} ~~~ > 查询user表内的内容,`返回userlist` 列表集合。 `join` :{Object} 要组合的查询语句,默认为 `LEFT JOIN` ~~~ {%model data="data",table="question_user",cache='1000',order="question_count DESC",alias="a",limit="10",join='{"member": {"join": "left","as":"b","on": ["a.uid", "b.id"]}}'%} ~~~ `field` {String} 设置要查询的字段,必须是字符串 ~~~ //设置要查询的字符串,字符串方式,多个用逗号隔开 {%mdoel data="userlist",table="user",field="name,age"%} ~~~ `fieldReverse`:{String} 反选字段,即查询的时候不包含这些字段 ~~~ //设置要查询的字符串,字符串方式,多个用逗号隔开 {%mdoel data="userlist",table="user",field="name,age"%} ~~~ `alias`:{String} 表别名 ~~~ {%model data="data",table="question_user",cache='1000',order="question_count DESC",alias="a",limit="10",join='{"member": {"join": "left","as":"b","on": ["a.uid", "b.id"]}}'%} ~~~ `limit`(offset, length) :offset {Number} 设置查询的起始位置 length {Number} 设置查询的数据长度 ~~~ {%mdoel data="userlist",table="user",limit="10"%} ~~~ `where` {json字符串} where 条件 ~~~ {%mdoel data="userlist",table="user",where='{"id":10}',limit="10"%} ~~~ `order` {String} 排序方式 ~~~ {%mdoel data="userlist",table="user",where='{"id":10}',order="id DESC",limit="10"%} ~~~ cache {Number} 缓存有效时间,单位为秒,建议1000秒 ~~~ {%mdoel data="userlist",table="user",where='{"id":10}',order="id DESC",limit="10",cache='1000%} ~~~ ## 代码例子 ~~~ {%model data="data",table="question_user",cache='1000',order="question_count DESC",alias="a",limit="10",join='{"member": {"join": "left","as":"b","on": ["a.uid", "b.id"]}}'%} {%if data.length>0%} <div class="box-inner nopadding margin-bottom-20"> <h3> <a class="pull-right size-11 text-warning" href="#">更多</a> 热门用户 </h3> <div class="" > {%for user in data%} <div class="clearfix margin-bottom-10"><!-- squared item --> <img class="thumbnail pull-left rounded" src="/uc/index/avatar/uid/{{user.uid}}" width="40" height="40" alt="" /> <h4 class="size-14 nomargin noborder nopadding bold"><a href="#">{{user.username}}</a></h4> <span class="size-12 text-muted">{{user.question_count}} 个问题, {{user.agree_count}} 次赞同</span> </div><!-- /squared item --> {%endfor%} </div> </div> {%endif%} ~~~