2016-10-19 23 views
0

verifiedという名前のエンティティがテーブルuserにあります。この[あなたのアプリケーションをアップロードすることができます]を確認するためにnullと表示されたい場合は=2を表示して、[あなたのアプリケーションは処理中です。]と確認された場合、=3アプリケーションが確認済みです。twig if複数の条件付きステートメント[symfony2]

が、今確認した場合=3が検証=2.

のメッセージを示しているためこれは私がやっていることです:

{% if entity.verified is empty %} 

<p> 
you can upload your application 
</p> 

{% elseif entity.verified|length !=2 %} 

<p> 
your application is in process 
</p> 

{% elseif entity.verified|length !=3 %} 

<p> 
your application has been verified 
</p> 
{% endif %} 

User.php

/** 
* 
* @ORM\Column(name="verified", type="decimal", options={"default" : 0}, nullable=true) 
*/ 
protected $verified; 

/** 
* Set verified 
* 
* @param string $verified 
* @return User 
*/ 
public function setVerified($verified) 
{ 
    $this->verified = $verified; 

    return $this; 
} 

/** 
* Get verified 
* 
* @return string 
*/ 
public function getVerified() 
{ 
    return $this->verified; 
} 
+1

マットからの回答は、EQUALSと比較していれば正しいですが、現在NOTを使用しています。個人的には、コントローラでこのロジックを行い、エンティティに仮想属性を設定するか、必要なテキストを持つロジック(これを列にマップする必要はありません)を実行するモデルでカスタムゲッターを作成し、その後、 – Rooneyl

+2

なぜ等しくない(!=)記号を使用していますか? –

答えて

1

あなたは「ドン長さのフィルタを使用する必要があります(そのフィルタの範囲は配列の要素を数えるためです、コレクションなど)。 o簡単に試してください:

{% if entity.verified is empty %}  
    <p>you can upload your application</p> 
{% elseif entity.verified == 2 %} 
    <p>your application is in process</p> 
{% elseif entity.verified == 3 %} 
    <p>your application has been verified</p> 
{% endif %} 

条件を逆転してください。

ホープヘルプ

+0

lenghtフィルタを削除しましたが、それでも同じ問題があります。私が3に設定されている場合は、あなたのアプリケーションが確認されていることを示すはずですが、あなたのアプリケーションが進行中であることを示しています。 – Sirius

+1

あなたはまだ等しくない比較を使用していますが、代わりに等価比較を使用しています – Rooneyl

+0

@Rooneyl '!='を '=='に変更しました。うまく動作します。 – Sirius

関連する問題