Symfony-variable existiert nicht im Zweig

Habe ich diese zwei Entitäten Users.php und sprovider.php und ein UserController.php
Die Sache, die mich stört, ist das Ergebnis, wenn ich versuche zu Rendern eine Vorlage in dieser Funktion.

 /**
 * @Route("/sproviderhome", name="sprovider_home")
 */
public function sproviderHomeAction(Request $request){

    $email = $request->get('email');
    $password = $request->get('password');

    $user= $this->getDoctrine()
        ->getRepository('AppBundle:Users')->
        findOneBy(array('email' => $email, 'password' => $password));

    $jobs = $this->getDoctrine()
        ->getRepository('AppBundle:jobs')
        ->findAll();

    if($user){
        return $this->render('home/sprovider.html.twig', array(
            'user' => $user,
            'jobs' => $jobs,
        ));
    }else{
        return $this->render('home/login.html.twig', array(
            'message' => "Sorry, you need to login first.",
        ));
    }
}

Ergebnis in sprovider.html.twig:

Variable "Arbeitsplätze" existiert nicht im Hause/sprovider.html-Code.Zweig in Zeile 8

sprovider.html-Code.Zweig:

{% extends '::base.html.twig' %}

{% block body %}
    {% if user is defined %}
        <h2 class="page-header">Welcome {{ user.name }}</h2>
    {% endif %}

    {% for job in jobs %}
        {{ job.name }}
    {% endfor %}
{% endblock %}

Das merkwürdige hier ist, dass $user existiert, aber $jobs nicht.

Was ich versucht habe, so weit ist um einen dump der jobs und es ist kein problem, die Arbeitsplätze sind in der Variablen.

Andere Sache, die ich versucht habe, ist, übergeben Sie eine Zeichenfolge wie diese:

return $this->render('home/sprovider.html.twig', array(
            'user' => $user,
            'jobs' => 'jobs',
        ));

Gleiche Ergebnis. Sieht aus wie das rendering wird nur das erste Objekt, das ist seltsam, denn ich bin vorbei ein array(). Übersehe ich etwas wichtiges? Kann das etwas damit zu tun haben cache? Ich räumte beide browser und Lehre cache, immer noch nichts. Ich kann nicht an nichts anderes denken, dieses zu verursachen. In anderen Funktionen im gleichen controller hatte ich kein problem-rendering ein array.

sind Sie sicher, dass Ihre Abfrage ist tatsächlich wieder ein array? auch, stellen Sie sicher, dass Sie einen Anfangsbuchstaben für alle Ihre Klasse Namen.
Das ist die Sache. Wie es aussieht ist es nicht. Wie kann ich sicher sein?
Können Sie Debuggen den Wert von $jobs, bevor er eingestellt ist twig? Dies ist auch sicherzustellen, dass es ist ein array wie erwartet.
überprüfen Sie die Tippfehler job.name statt jobs.name
Ich denke ->getRepository('AppBundle:jobs') ist die problematische Zeile. Nach bundle-name der Entität gesetzt werden sollte, die ein groß-Wort. Versuchen ->getRepository('AppBundle:Jobs') und leeren Sie Ihren cache. Es wird funktionieren, glaube ich.

InformationsquelleAutor Georgi Georgiev | 2016-04-11

Schreibe einen Kommentar