Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

260
Views
Pass an array to a twig macro in Symfony

I have a controller, a twig macro and the main template where the macro is imported. I would like to send an array in my macro and for each row of my table I want to display its data.

A line is composed of : title, description, img, type

The controller :

/**
 * @Route("/realisations", name="realisations")
 * @Method({"GET"})
 *
 * @return \Symfony\Component\HttpFoundation\Response
 */
public function realisationsAction()
{
    return $this->render('MyBundle:page:realisations.html.twig', $datas = array('type' => 'The type',
                                                                                 'img' => 'test.jpg',
                                                                                 'titre' => 'Test',
                                                                                 'description' => 'The description'));
}

The main template :

{% import "MyBundle:macros:realisationsMacros.html.twig" as macros %}

{{ macros.realisations(datas) }}

The macro :

    {% macro realisations(datas) %}
    {% for data in datas %}
        <div class="project {{ data.type }} isotope-item" style="position: absolute; left: 0; top: 0; transform: translate3d(0px, 0px, 0px);">
            <div class="content">
                <div class="image">
                    <img src="{{ asset('bundles/jsmetallerie/img/realisations/'~ data.type ~'/13.png') }}" alt="{{ data.titre }}">
                    <div class="item-hover">
                        <ul class="item-icons">
                            <li><a href="{{ asset('bundles/jsmetallerie/img/realisations/'~ data.type ~'/'~ img) }}" data-fancybox><i class="fa fa-search"></i></a></li>
                            <li><a href="{{ path('jsm_realisation_projet') }}"><i class="fa fa-link"></i></a></li>
                        </ul>
                    </div>
                </div>
                <span class="h6">{{ data.titre }}</span>
                <p>{{ data.description }}</p>
            </div>
        </div>
    {% endfor %}
{% endmacro %}

The Symfony error is : "Variable "datas" does not exist."

I think the error comes from creating my table in the controller but I do not know how to create it correctly

Thanks in advance

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

simply pass an array with a key named 'datas' as example:

    $params = array(
        'datas' => array('type' => 'The type',
                         'img' => 'test.jpg',
                         'titre' => 'Test',
                         'description' => 'The description')
    );

    return $this->render('MyBundle:page:realisations.html.twig', $params);

Hope this help

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!