Я получаю ошибкуОтображение объекта Доктрина в веточке
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.
Спасибо! Это были геттеры/сеттеры. Я видел ваше сообщение прямо перед вашим редактированием и проверял, работает ли оно с защищенными переменными, – jblz