在Sylius错误

时间:2016-11-28 05:04:12

标签: sylius

我正在尝试对产品网格上Sylius管理员“产品”页面中的新列进行排序。该列是mainTaxon,我已经通过向src / Sylius / Bundle / AdminBundle / Resources / config / grid / product.yml添加一个部分来正确显示

在'fields'下:

mainTaxon:
    type: twig
    label: "Main Taxon"
    sortable: ~
    options:
        template: @SyliusAdmin/Product/Grid/Field/mainTaxon.html.twig

从mainTaxon tempate然后渲染主要的分类单元,如果有一个,或者只是一个空格字符。

{% if data %}
    <a href="/admin/taxons/{{ data.id }}/edit">
        {{ data.name }}
    </a>
{% else %}
    &nbsp;
{% endif %}

这一切都适用于显示主要分类的列。不幸的是,只要我点击排序,我就会收到以下错误:

  

在渲染模板期间抛出了异常   (“注意:未定义的索引:mainTaxon”)in   SyliusAdminBundle:网格:第41行的_default.html.twig。500内部   服务器错误 - Twig_Error_Runtime

错误引用的文件中的行是:

{% for row in data %}

这是为产品页面生成整个网格的行循环。它似乎在渲染包含mainTaxon的单元格(td)之前遇到了麻烦,可能是因为在某个地方有一个我不知道的数组,哪个缺少额外类别的索引?只是一个猜测,洞察力很高兴!

编辑:

我已经做了一些深入研究。自从我提出这个问题后,网格编辑的文档已经提交给Sylius:http://docs.sylius.org/en/latest/customization/grid.html,但不幸的是它仍然没有解决添加新字段的问题。

我查看了映射产品ORM的Product.orm.xml文件,并看到mainTaxon字段的映射如下:

<many-to-one field="mainTaxon" target-entity="Sylius\Component\Taxonomy\Model\TaxonInterface">
    <join-column name="main_taxon_id" referenced-column-name="id" nullable="true" />
</many-to-one>

我认为问题必须是,当执行排序时,必须运行新查询以再次从数据库中提取产品数据。显然,main_taxon_id列上的这个映射错误地输入了排序查询,可能是因为它是一个外键。我不确定排序功能是否还不支持外键,这应该是未来的计划,或者我是否还需要做些什么才能使其正常工作。

0 个答案:

没有答案