twig中检查你的变量是否被定义很容易
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{# defined works with variable names #} {% if foo is defined %} ... {% endif %} {# and attributes on variables names #} {% if foo.bar is defined %} ... {% endif %} {% if foo['bar'] is defined %} ... {% endif %} |
具体可参见:Twig defined。
当然,如果你想检查一个已存在变量是否为空,也是很容易的:
1 2 3 |
{% if var is null %} {# do something #} {% endif %} |
当然还有一种比较严格的比对方式:
1 2 3 |
{% if var is sameas(false) %} {# do something %} {% endif %} |
具体可参见:Twig sameas。
如果这个变量为:array(0) { }一个空数组,那么下面的判断很有效
1 2 3 |
{% if var|length > 0 %} {# do something #} {% endif %} |
(非twig)action中的EntityRepository->find()方法会返回一个object对象,如果数据库中没有回返回null。以下方式展示如何判断:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public function showAction($productId) { $product = $this->getDoctrine() ->getRepository('AppBundle:Product') ->find($productId); if (!$product) { throw $this->createNotFoundException( 'No product found for id '.$productId ); } // ... do something, like pass the $product object into a template } |
或者
1 2 3 4 5 |
if (null !== $entity) { } if ($entity instanceof Representative) { } |