2

我有这样的树枝代码:

{% for row in faq_categories|batch(2, 'No item') %}
             <div class="row">
                {% for faq_category in row %}
                    <div class="col-lg-6">
                        <h3>{{ faq_category.name }}</h3>
                        <p>{{ faq_category.description }}</p>
                        {% set faqs = getFaqs( faq_category.id ) %}
                        <div class="accordion toggle fancy radius clean">
                            {% for faq in faqs %}
                                <div class="ac-item">
                                    <h5 class="ac-title"><i class="fa fa-question-circle"></i>{{ faq.question}}?</h5>
                                    <div style="" class="ac-content">{{ faq.answer }}</div>
                                </div>
                            {% endfor %}
                        </div>
                    </div>
                {% endfor %}

一切正常,但是当我只有 1 条 faq_categories 记录时,它给了我这样的错误:

Message: 'Argument 1 passed to App\Models\Faq::byCategory() must be of the type int, null given, called in D:\laragon\www\compro\Core\View.php on line 86'

这是由这行代码引起的:

{% 设置常见问题 = getFaqs( faq_category.id ) %}

似乎 faq_category.id 变为空。我不知道是什么导致这种情况发生是因为批处理过滤器?或者我在这里做了什么?

4

1 回答 1

1

这是因为批量过滤。自从您将其设置为批处理(2)以来,它将重复两次。所以第二个为空的记录将使 faq_category.id 变为空。要解决这个问题,你可以试试这个:

{% set faqs = faq_category.id ? getFaqs( faq_category.id ) : null %}
于 2020-01-26T16:13:14.960 回答