Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I fix "Add myBundle to the asseticBundle config" symfony2 exception?

Tags:

php

twig

symfony

When I am trying to use the TWIG {% javascript %} tag to link to my .js file it return me with the following exception :

An exception has been thrown during the compilation of a template ("You must add CompetitiongameBundle to the assetic.bundle config to use the {% javascripts %} tag in CompetitiongameBundle:game:index.html.twig.") in "CompetitiongameBundle:game:index.html.twig".

My index.html.twig looks like :

{% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%}
    <script type="text/javascript" src="{{ asset_url }}" ></script>
{% endjavascripts %}
Hello {{ name }}!

<a href='{{ nexturl }}' >Login</a>

My Bundle is already present in the config file when I do :

php app/console config:dump-reference assetic

How can I fix this ?

like image 472
Manish Basdeo Avatar asked Aug 31 '12 21:08

Manish Basdeo


4 Answers

Yes I tried and it solved the issue for me. For someone (like me) who doesn't know initially how to add then just:

  1. edit app/config/config.yml
  2. then go to assetic:
  3. under assetic: go to bundles: []
  4. and in bundles: [] //type your bundle name

for instance if your bundle is Acme\DemoBundle, then do the following

assetic:
   bundles: [ AcmeDemoBundle ]

No quotes around AcmeDemoBundle. That's it. (Symfony2)

like image 86
Shabbir Reshamwala Avatar answered Nov 02 '22 15:11

Shabbir Reshamwala


If you want assetic to include your bundles by default, you can comment (with #) the line bundles: []

ex:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    #bundles:        [ ]
    #java: /usr/bin/java
like image 27
Tivie Avatar answered Nov 02 '22 17:11

Tivie


Sometimes you need to make decisions on the fly, then you can use use DependencyInjection.

For example to loads and manages configuration:

<?php

namespace You\ExampeBundle\DependencyInjection;

use Symfony\Component\DependencyInjection\ContainerBuilder;

/* ... */

class YouExampeExtension extends Extension
{

    /* ... */

    public function load(array $configs, ContainerBuilder $container)
    {
        /* ... */

        $aAsseticBundle = $container->getParameter('assetic.bundles');
        $aAsseticBundle[] = 'YouExampeBundle';
        $aAsseticBundle[] = 'AnotheBundle';
        $container->setParameter('assetic.bundles', $aAsseticBundle);

        /* ... */
    }
}

You can use more complex logic to manipulate the configuration(in reasonable limits)

like image 10
Максим Шатов Avatar answered Nov 02 '22 15:11

Максим Шатов


You need to add your bundle to bundle: [] row of assetic: section in app/config/config.yml file (symfony 2.1)

like image 3
user1041503 Avatar answered Nov 02 '22 16:11

user1041503