小编ste*_*fax的帖子

如何结合DoctrineExtensions中的Translatable和Sluggable?

我已经安装了https://github.com/stof/StofDoctrineExtensionsBundle,并在Country实体的特定字段上使用Translatable和Sluggable:

...
class Country
{
    ...
    /**
     * @Gedmo\Translatable
     * @Gedmo\Slug(fields={"name"})
     * @ORM\Column(length=255, nullable=false)
     */
    private $slug;
Run Code Online (Sandbox Code Playgroud)

对于英语用户,页面的URL应为.../country/france;对于德语用户,页面的URL应为.../land/frankreich.

在一个控制器中,我得到了特定语言的slug,并通过这个特定于语言环境的slug进行过滤,我想要检索一个国家实体.

我在这里或文档中没有找到任何关于如何做到这一点的内容.

感谢有关如何解决这个问题的任何提示!

symfony doctrine-orm

5
推荐指数
1
解决办法
2867
查看次数

如何在symfony 2中使用assetic组织与包含的模板或嵌入式控制器相关的资产?

我真的想在我的symfony 2项目中使用assetic,因为它有许多有用的功能,但我不确定实现以下要求的最佳方法.

我有几个js文件可以包含在所有页面中.但是,其中一些仅与页面模板的子集相关,其中我包含需要特定javascript文件的特定模板(或嵌入特定控制器).

现在我有以下选择:

  1. 我在布局和特定页面模板(我在其中包含带有javascript的模板,例如templateWithComplexJs.html.twig)中为javascripts创建了一个块元素,我使用{{parent()}}覆盖此块,如此处所述:跨继承模板组合资产资源.

    {# ... specific.html.twig #}  
    {% extends 'MyBundle::layout.html.twig' %}
    
    ...  
    {% include 'MyBundle:Foo:templateWithComplexJs.html.twig' %}  
    ...  
    
    {% block javascripts %}
        {{ parent() }}
        {% javascripts  
            '@MyBundle/Resources/public/js/specific/complex.js'  
        %}  
        <script src="{{ asset_url }}"></script>  
        {% endjavascripts %}  
    {% endblock %}  
    
    Run Code Online (Sandbox Code Playgroud)

    我看到的缺点:
    a)当我调整包含的模板(例如更新到新的js lib)时,我必须调整所有页面模板,包括它们.在一个容易导致错误的复杂系统中.
    b)可能会发生两次javascript,一次在布局中,一次在模板的javascript中,资产不知道,因为它们被单独处理.

  2. 我包含了布局中所需的所有js文件,然后我只需要在调整包含的模板时更改一个位置,并且我不太可能包含两次javascripts.

    我看到的缺点是:
    由于js文件的大小很大,我宁愿只在少数情况下将它们包含在我真正需要它们的时候.

在这个相关的问题(几个模板中的Twig Assetic Stylesheets)中,它表示目前无法通过资产来实现令人满意的解决方案,但我想我并不是唯一一个有这些要求并且想要使用资产的人.

那么,这种场景的最佳实践是什么?

symfony assetic

3
推荐指数
1
解决办法
1759
查看次数

标签 统计

symfony ×2

assetic ×1

doctrine-orm ×1