2016-03-04 5 views
0

Я получаю ошибкуОтображение объекта Доктрина в веточке

Method "id" for object "AppBundle\Entity\Domains" does not exist in main\dashboard.html.twig at line 15 

Вот код

главная \ dashboard.html.twig

    {% for domain in domains %} 
        <p> {{ domain.id }}</p> 
        <p> {{ domain.domain }}</p> 
        {% endfor %} 

Appbundle \ Entity \ Domains.php

<?php 

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Symfony\Component\Validator\Constraints as Assert; 

/** 
* Domains 
* @ORM\Entity 
* @ORM\Table(name="domains") 
*/ 
class Domains 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @var string 
    * @ORM\Column(type="string", length=500) 
    */ 
    protected $domain; 

} 

DashboardControll er.php

<?php 

namespace AppBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 
use AppBundle\Entity\Domains; 

class DashboardController extends Controller 
{ 
/** 
* @Route("/", name="homepage") 
*/ 
public function indexAction() 
{ 
    $domain = $this->getDoctrine() 
     ->getRepository('AppBundle:Domains'); 

    $domains = $domain->findAll(); 
    foreach ($domains as $domain) { 
     dump($domain); 
    } 

    dump($domains); 

    // replace this example code with whatever you need 
    return $this->render('main/dashboard.html.twig', array('domains' => $domains)); 
} 

} 

Теперь я знаю, что $ domains определенно получает записи. Например

Array ([0] => AppBundle\Entity\Domains Object ([id:protected] => 1 [domain:protected] => hello.com) [1] => AppBundle\Entity\Domains Object ([id:protected] => 2 [domain:protected] => stackoverflow.com)) 

И что Twig определенно получать «домены», как и когда я ставлю ложные переменные в Twig он говорит, что не может найти его. Если я удалю domain.id, он будет ошибочен на domain.domain.

Я пробовал использовать как отладку, так и дамп в Twig, чтобы увидеть способ «домены» отформатирован, но я не могу заставить работать на Symfony.

Может ли кто-нибудь увидеть, где я ошибаюсь? Я думаю, что это должен быть либо способ передачи доменов $ до Twig, либо способ доступа к доменам в Twig.

ответ

0

Вы должны генерировать геттеры/сеттеры, как описано здесь: http://symfony.com/doc/current/book/doctrine.html#generating-getters-and-setters

+0

Спасибо! Это были геттеры/сеттеры. Я видел ваше сообщение прямо перед вашим редактированием и проверял, работает ли оно с защищенными переменными, – jblz

Смежные вопросы