【问题标题】:Impossible to access an attribute ("id") on a null variable无法访问空变量的属性(“id”)
【发布时间】:2017-11-17 04:36:28
【问题描述】:

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

无法访问空变量的属性(“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 %}

【问题讨论】:

  • 你如何获取数据并将它们传递给你的视图?每个ontvangst都有最好的吗?
  • 是的,他们确实有!这只是奇怪的部分。因为它稍后会为“ artikelnummer”工作。但是当我添加“id”时,我得到了这个错误。虽然它们的配置相同
  • @Colin,哪个答案是正确的?除了你所用的正确答案,你能点击对勾吗?

标签: twig


【解决方案1】:

@Aenadon 是正确的。您需要检查 ontvangst.bestelling 是否为空。您可以在 Twig 中编写如下代码:

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

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

【讨论】:

    【解决方案2】:

    ontvangst.bestelling.id

    错误消息显示“无法获取空变量的属性 ID”。这意味着对象ontvangst 上的bestelling 为空。确保bestelling 不为空,然后问题就消失了。

    【讨论】:

    • 时间不早了。非常感谢!
    【解决方案3】:

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

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

    所以如果没有定义bestelling,它将显示默认值

    【讨论】:

    • 这是一个很好的替代解决方案!
    猜你喜欢
    • 2022-07-07
    • 2020-01-05
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多