无法访问空变量

时间:2017-06-14 21:03:58

标签: twig

当我尝试显示此树枝时,我收到此错误;

  

无法访问空变量的属性(“id”)。

在它显示的行上; <th>Bestelordernummer:</th> <td>{{ontvangst.bestelling.id}} </td> 我不知道这是从哪里来的

{% extends 'base.html.twig' %}
    {% block body %}
    <style>
    table {
        font-family: arial, sans-serif;
        border-collapse: collapse;
        width: 100%;
    }

    th {
        border: 1px solid #dddddd;
        text-align: left;
        padding: 8px;
    }

    td {
        border: 1px solid #dddddd;
        text-align: right;
        padding: 8px;
    }


    tr:nth-child(even) {
        background-color: #dddddd;
    }
    </style>
        <h1>Overzicht van zendingnummer</h1>
        <h2>
        <a href="{{ path('alleontvangst',{}) }}"><button type="button" class="btn btn-default">Terug naar alle ontvangsten</button></a></h2>
        <ul>
        {% for ontvangst in ontvangsten %}
                    <table>
                    <th>Zendingnummer:</th> <td>{{ontvangst.zendingnummer}}</td>
                    </table>
                    <table>
                    <th>Datum ontvangst:</th> <td>{{ontvangst.datumOntvangst|date("d/m/Y")}} </td>
                    </table>
                    <table>
                    <th>Bestelordernummer:</th> <td>{{ontvangst.bestelling.id}} </td>
                    </table>
            <table>
                    <th>Naam Leverancier:</th> <td>{{ontvangst.naamleverancier}} </td>
                    </table>
                    <table>
                    <tr>
                    <th>Artikelnummer</th>
                    <th>Omschrijving</th>
                    <th>Hoeveelheid</th>
                    <th>Kwaliteit</th>
                    </tr>
                    <tr>
                    <td>{{ontvangst.artikel.artikelnummer}}</td>
                    <td>{{ontvangst.omschrijving}}</td>
                    <td>{{ontvangst.hoeveelheid}}</td>
                    <td>{{ontvangst.keuringseis}}</td>
                    </tr>
                    </table>
        {% endfor %}
        <ul>
    {% endblock %}

3 个答案:

答案 0 :(得分:2)

@Aenadon是对的。您需要检查ontvangst.bestelling是否为空。您可以在Twig中对此进行编码:

<table>
    <th>Bestelordernummer:</th>
    <td>
        {% if ontvangst.bestelling is not null %}
            {{ontvangst.bestelling.id}}
        {% else %}
            N/A
        {% endif %}
    </td>
</table>

您可以根据需要修改代码。

答案 1 :(得分:2)

@alvin的解决方案很好用。另一种解决方案是使用default枝条过滤器,如下所示:

<table>
    <th>Bestelordernummer:</th>
    <td>
        {{ ontvangst.bestelling.id|default('Your default value here') }}
    </td>
</table>

因此,如果未定义bestelling,则会显示默认值

答案 2 :(得分:1)

ontvangst.bestelling.id

错误消息说&#34;无法在null变量&#34;上获取属性id。这意味着对象bestelling上的ontvangst为空。确保bestelling不为空,然后问题就消失了。