记录未按顺序显示

时间:2019-09-29 21:16:20

标签: php laravel twig octobercms

我在OctoberCMS中构建了一个自定义插件,并且成功实现了Reorder控制器。

现在唯一的问题是记录没有按照我在后端设置的顺序显示在前端。

任何帮助将不胜感激。

{% for course in record.courses %}
          <div class="col-md-4 mt-3 mb-4">
              <a href="{{ course.slug }}">
              <div class="box-new">
                <div class="box-header" style="background:url('{{ course.banner.path() }}');">
                    <div class="box-meta">
                        <p class="box-meta-category">{{ course.category.title }}</p>
                        <hr class="box-line">
                        <p class="box-meta-title">{{ course.title }}</p>
                    </div>
                </div>
                <div class="box-course-details">
                    <ul id="box-course-details">
                        <li><strong>Valid</strong> {{ course.valid_for }}</li>
                        <li><strong>Duration</strong> {{ course.duration }}</li>
                    </ul>
                </div>
                </a>
                <div class="action">
                    <a href="/course/{{ course.slug }}" class="btn btn-primary btn-block btn-new">View Course</a>
                </div>
              </div>
            </div>
          {% endfor %}

1 个答案:

答案 0 :(得分:0)

我假设您实现的Reorder使用的是Sortable特征。如果是这样,这只会在数据库中设置sort_order列,但不会自动按前端的排序。从上面的代码中,您似乎正在使用record hasMany courses的关系。使用record模型来更新关系定义:

public $hasMany = [
    'courses' => ['Foo\Bar\Models\Course', 'order' => 'sort_order']
];