2017-03-17 28 views
0

データベースからデータを取得して表示していますが、「いいえ」を意味するデータは「(」を意味し、「YES」を表すデータ"X"でデータを表示しているとき、 "("を "NO"と "X"を "YES"に変換するにはどうすればよいですか?Symfony2:値が何かと等しい場合は、それを何かに変更してください

ここは私のtwig.htmlですファイル:

{% extends 'base.html.twig' %} 

{% block body %} 
<div class="container"> 
    <div class="starter-template"> 
    <h1><strong>{{ shrub.commonname }}</strong></h1> 
     <p>THE FOLLOWING IS DETAILED information about the species <strong>{{ shrub.botanicalname }}</strong> (common name <strong>{{ shrub.commonname }})</strong>.</p> 

     {% if shrub == "(" %} 
      value=="YES" 

     <table class="table table-striped"> 
        <hr> 
     <tbody> 
      <tr> 
       <th>ph Preference</th> 
       <td>{{ shrub.phpreference }}</td> 
      </tr> 
      <tr> 
       <th>Borderline Hardy</th> 
       <td>{{ shrub.borderlinehardy }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Wet Soil</th> 
       <td>{{ shrub.wetsoil }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Moist Soil</th> 
       <td>{{ shrub.moistsoil }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Peaty Soil</th> 
       <td>{{ shrub.peatysoil }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Well-drained Soil</th> 
       <td>{{ shrub.welldrainedsoil }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Drought</th> 
       <td>{{ shrub.drought }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Clay Soil</th> 
       <td>{{ shrub.claysoil }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Sandy Soil</th> 
       <td>{{ shrub.sandysoil }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Loam Soil</th> 
       <td>{{ shrub.loamsoil }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Infertile Soil</th> 
       <td>{{ shrub.infertilesoil }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Rich Soil</th> 
       <td>{{ shrub.richsoil }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Compacted Soil</th> 
       <td>{{ shrub.compactedsoil }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates City Conditions</th> 
       <td>{{ shrub.cityconditions }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Pollution</th> 
       <td>{{ shrub.pollution }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Salt Conditions</th> 
       <td>{{ shrub.salt }}</td> 
      </tr> 
      <tr> 
       <th>Tolerates Windy Conditions</th> 
       <td>{{ shrub.windy }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Shade</th> 
       <td>{{ shrub.shade }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Part Shade</th> 
       <td>{{ shrub.partshade }}</td> 
      </tr> 
      <tr> 
       <th>Prefers Full Sun</th> 
       <td>{{ shrub.fullsun }}</td> 
      </tr> 
     </tbody> 
    </table> 

     {% endif %} 

    <ul> 
     <li> 
      <a href="{{ path('shrubs_index') }}">Back to the list</a> 
     </li> 
     <li> 
      <a href="{{ path('shrubs_edit', { 'id': shrub.number }) }}">Edit</a> 
     </li> 
     <li> 
      {{ form_start(delete_form) }} 
       <input type="submit" value="Delete"> 
      {{ form_end(delete_form) }} 
     </li> 
    </ul> 
    </div> 
     </div> 
{% endblock %} 

そして、私のコントローラは、それが重要な場合:

パブリック関数showAction(低木$低木) { $ deleteForm = $ this-> createDeleteForm($ shrub);

+1

通常、このような種類の小枝フィルタを作成します。http://symfony.com/doc/current/templating/twig_extension.html – Cerad

+0

これは動作しますか?私はここで何か間違っていると思っています - あなたがshrub ==を文字列として使うと(shrubをオブジェクトとして使用すると 'shrub.phpreference')' srub'の内容は? –

+0

実際にtwig拡張オプション働いたおかげCERAD – bigmammoo

答えて

0

誰かが上記の提案のように、私は、小枝の拡張子を使用:次に

public function getFilters() 
{ 
    return array(
     new \Twig_SimpleFilter('x', array($this, 'booleanFilter')), 
    ); 
} 

public function booleanFilter() 
{ 
    $x = "yes"; 

    return $x; 
} 

変数:{{shrub.wetsoil | x}}

+0

パブリック関数booleanFilter($値) { をしようとしてくれてありがとうを;!。 } else { $ boolean = "yes"; } return $ boolean; } – bigmammoo

0

return $this->render('shrubs/show.html.twig', array(
    'shrub' => $shrub, 
    'delete_form' => $deleteForm->createView(), 
)); 

}は、いくつかのロジックに基づいて小枝変数を設定するには、このようなものを使用する必要があります。

{% set value = '' %} 
{% if '(' == shrub %} 
    {% set value = 'YES' %} 
{% elseif 'X' == shrub %} 
    {% set value = 'NO' %} 
{% endif %} 
+0

ちょうどテーブル全体が表示されなくなりますそれ($値== "("){ $ブール= "no" の場合は、とにかく – bigmammoo

関連する問題