业务场景:
第三方平台实现微信图文,在页面上用ajax加载更多图文时需要组装大量的JSON数据,如果把数据的格式写到代码里面会使数据的结构不够清晰,如果数据结构变动那么改动就会比较麻烦,所以利用twig模板来组装数据,使数据结构清晰可视,以后数据结构变动只要修改传入到twig模板的数,以及修改twig的数据结构。
**项目使用的框架:**symfony
twig:
<code>
{
<span>"base_resp"</span>:
{
<span>"ret"</span>:{{ baseResp<span>.ret</span> }},
<span>"err_msg"</span>:<span>"{{ baseResp.errMsg }}"</span>
},
<span>"app_msg_info"</span>:
{
<span>"item"</span>:
[
{% if weixinNewses is not empty %}
{% for weixinNews <span>in</span> weixinNewses %}
{
<span>"seq"</span>:{{ weixinNews<span>.id</span> }},
<span>"app_id"</span>:{{ weixinNews<span>.id</span> }},
<span>"file_id"</span>:{{ weixinNews<span>.id</span> }},
<span>"title"</span>:<span>"{{ weixinNews.title }}"</span>,
<span>"digest"</span>:<span>"{{ weixinNews.digest }}"</span>,
<span>"create_time"</span>:<span>"{{ weixinNews.createdTime|datetimeToSecond }}"</span>,
<span>"multi_item"</span>:
[
{
<span>"seq"</span>:{{ weixinNews<span>.id</span> }},
<span>"cover"</span>:<span>"{{ weixinNews.thumbMediaUrl }}"</span>
……
}
],
<span>"content_url"</span>:<span>"{{ weixinNews.detailUrl }}"</span>,
<span>"img_url"</span>:<span>"{{ weixinNews.thumbMediaUrl }}"</span>,
<span>"author"</span>:<span>"{{ weixinNews.author }}"</span>,
<span>"show_cover_pic"</span>:<span>1</span>,
<span>"update_time"</span>:<span>"{{ weixinNews.updatedTime|datetimeToSecond }}"</span>
},
{% endfor %}
{<span>#这里要有{}#}</span>
{}
{% endif %}
],
<span>"file_cnt"</span>:
{
<span>"total"</span>:{{ fileCnt<span>.total</span> }},
<span>"img_cnt"</span>:{{ fileCnt<span>.imgCnt</span> }}
……
},
<span>"is_upload_cdn_ok"</span>:{{ appMsgInfo<span>.isUploadCdnOK</span> }},
<span>"search_cnt"</span>:{{ appMsgInfo<span>.searchCnt</span> }}
}
}</code>action:
<code><span>/**
* 加载更多图文
*<span> @Template</span>()
*<span> @param</span> Request $request
*<span> @Route</span>("/xxx,name="xxx")
*<span> @return</span> array
*/</span><span>public</span><span><span>function</span><span>getWeixinNewsesHtmlAction</span><span>(Request <span>$request</span>)</span>{</span><span>$weixinNewses</span>=xxx;<span>//微信图文信息</span><span>$baseResp</span> = <span>array</span>(<span>"ret"</span>=><span>$ret</span>,<span>"errMsg"</span>=><span>$errMsg</span>);
<span>$fileCnt</span> = <span>array</span>(
<span>"total"</span>=><span>$count</span>,
<span>"imgCnt"</span>=><span>0</span>,
<span>"voiceCnt"</span>=><span>0</span>,
<span>"videoCnt"</span>=><span>0</span>,
<span>"appMsgCnt"</span>=><span>$count</span>,
<span>"commondityMsgCnt"</span>=><span>0</span>,
<span>"videoMsgCnt"</span>=><span>0</span>,
<span>"shortVideoCnt"</span>=><span>0</span>,
<span>"appMsgSentCnt"</span>=><span>0</span>
);
<span>$appMsgInfo</span> = <span>array</span>(<span>"isUploadCdnOK"</span>=><span>0</span>,
<span>"searchCnt"</span>=><span>empty</span>(<span>$query</span>)?<span>0</span>:<span>$count</span>
);
<span>return</span><span>array</span>((<span>"baseResp"</span>=><span>$baseResp</span>,<span>"fileCnt"</span>=><span>$fileCnt</span>,<span>"weixinNewses"</span>=><span>$weixinNewses</span>,<span>"appMsgInfo"</span>=><span>$appMsgInfo</span>));
}</code>版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了使用twig来组装数据使数据结构可视化,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号