twig一些常用的用法總結【原創】


在使用Symphony項目時,需要一些常用的twig,經過自己做的幾個項目,自己的總結如下:
一、twig-數據判斷
有時候在使用后台傳給前台數據時需要判斷是否有這個值,(是否為空(”或null)或是否定義defined或is empty)
例如:
多維數組時:
{% if item.image is defined %}
<div class=”trade-show-imgs”>
{% for img in item.image %}
{% if img != “” %}
<div class=”trade-show-box”>
<img class=”small-img” src=”{{ asset(‘image/member/order/’) }}{{ img }}” alt=”” title=”” />
</div>
{% endif %}
{% endfor %}
</div>
{% endif %}

  

 
二、拼接url(一種是路由path,一種是路徑asset),使用replace()轉換
var dataid = data[i].id;
var dataimg = data[i].brand_image;
var idurl = “{{ path(‘zm_member_myCar_choose_series’,{‘id’:’dataId’})}}”;
idurl = idurl.replace(“dataId”,dataid);
var idimg = “{{ asset(‘image/brand/’) }}{{ ‘dataImg’ }}”;
idimg = idimg.replace(“dataImg”,dataimg);

  

三、后台傳的是多維數組,且第一維數組中是A,B,C,F,G,R等字母,其中包含數組
如圖所示: {D77246D3-3585-4BDB-BC9D-E33FB2A72DBA}
{% for key,item in result %}
<div class=”lettlecity”>
<div class=”lettletitle”>{{ key }}</div>
{% for items in item %}
<a href=”{{ path(‘zm_frontend_set_city’,{‘id’:items.id}) }}” class=”lettlebox”>{{ items.name }}</a>
{% endfor %}
</div>
{% endfor %}

  

四、twig路由
1.最簡單的:{{ path(‘zm_frontend_index_search’) }}
2.帶ajax的: {{ path(‘zm_member_address_info_ajax’) }}
3.拼接id的:{{ path(‘zm_member_order_show’,{‘id’:review_info[‘id’]}) }}
4.拼接Id 和type的:{{path(‘zm_member_favorites_action_ajax’,{‘id’:’storeid’,’type’:1})}}
5.帶排序的:<a class=”” href=”{{ url }}&order=grade&{% if filter.sort == “DESC” %}sort=ASC{%else%}sort=DESC{%endif%}”>好評</a>
6.搜索在url中拼接(?和&):href=”{{ path(‘zm_frontend_store_list’) }}?manufacturer_id={{ manufacturers.id }}{% if filter.district_id != ” %}&district_id={{ filter.district_id }}{% endif %}”
 
五、將后台傳來的數據,轉換另一種格式
(1)、{{ data.market_price |number_format }}元(如89.00轉換為89)
(2)、提取需要長度的字符串 {{ app.session.get(‘city_name’)[0:2] }}(如北京市提取出北京)
(3)、文章格式輸出 {{ data.content |raw }}
(4)、日期格式(如2015-8-23 11:20:45) {{orderlists[‘date_added’] |date(‘Y-m-d’)}}&nbsp;{{orderlists[‘date_added’] |date(‘H:i:s’)}}
 
六、{% set  %} 設置變量
{% if reply is defined %}{% set floor = 2 %}
{% for item in reply %}
<p class=”message-floor”>{{ floor }}樓</p>
{% set floor = floor+1 %}
{% endfor %}
{% endif %}
七、twig循環-樣式不同的(利用loop.index:從1開始)
<div class=”maintenance-men-content”>
{% for storelists in local_master %}
<div  {% if loop.index == “1” %}style=”background: #c51a1a”
{% elseif loop.index == “2” %}style=”background: #1a53c5″
{% endif %}class=”maintenance-men-list”></div>
{% endfor %}

  

八、分頁
后台一般也寫好分頁,所有的分頁都是一樣的,我們前端再定義一個都可以引用到的樣式
只需調用{{ render|raw }}即可
九、session
利用session可以獲得用戶信息(如名稱,號碼,甚至頭像),也可以獲得定位的城市
如:
{{ app.session.get(‘member_name’) }}
{{ app.session.get(‘city_name’) }}
 

  

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM