如何使用IvoryCKEditorBundle分隔文件夹进行文件上传?

时间:2015-03-06 02:17:51

标签: php symfony ckeditor sonata-admin sonata

我在我的项目中使用以下内容:

  • Symfony 2.3
  • IvoryCKEditorBundle
  • CoopTilleulsCKEditorSonataMediaBundle

我的意图是用户可以创建自己的页面来显示不同类型的信息。但是,用户之间存在某种关系(某些用户属于某个学校,因此只有该学校的用户才能看到学校上传的文件而没有其他人)。我完全不知道索纳塔媒体套装或索纳塔项目,我有时间限制,而且文档在短时间内对我来说太过分了。我以某种方式设法安装了Media Bundle,甚至花了整整一天的时间,花了很多时间来确定依赖关系以使其工作。

所以我来找你。当我尝试上传文件时,出现以下错误:

 Key "provider" for array with keys "context, category, hide_context" does not exist in CoopTilleulsCKEditorSonataMediaBundle:MediaAdmin:browser.html.twig at line 47 

我还没有配置管理员课程,我甚至不知道为什么要配置它以及我应该如何将它与我当前的模型集成。所以我的问题是:

  • 为什么会发生错误?
  • 为什么我需要配置管理类? AdminBundle没有自己的基本管理类吗?
  • 如何分隔用户,以便每个用户只能看到为学校上传的内容而已?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

此错误是由于MediaBundle的工作方式发生了变化。为了解决这个问题,你必须转到browser.html.twig并用这个替换46到58行:​​

{% if (persistent_parameters.provider is defined) and ( not persistent_parameters.provider) %}
                        <li class="active"><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': null}|merge(ckParameters)) }}">{{ "link.all_providers"|trans({}, 'SonataMediaBundle') }}</a></li>
                    {% else %}
                        <li><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': null}|merge(ckParameters)) }}">{{ "link.all_providers"|trans({}, 'SonataMediaBundle') }}</a></li>
                    {% endif %}

                    {% for provider_name in providers %}
                        {% if (persistent_parameters.provider is defined) and (persistent_parameters.provider == provider_name) %}
                            <li class="active"><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': provider_name}|merge(ckParameters)) }}">{{ provider_name|trans({}, 'SonataMediaBundle') }}</a></li>
                        {% else %}
                            <li><a href="{{ admin.generateUrl('browser', {'context': persistent_parameters.context, 'provider': provider_name}|merge(ckParameters)) }}">{{ provider_name|trans({}, 'SonataMediaBundle') }}</a></li>
                        {% endif %}
                    {% endfor %}

希望这有助于你