нет публичного доступа к свойствам объектов? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь показать данные из базы данных MySQL. Я успешно создал сущность, но каким-то образом не могу получить доступ к свойствам, хотя у меня есть общедоступные установщики и получатели.

Сообщение об ошибке:

Ни свойство "id", ни один из методов "id ()", "getid ()" / "isid ()" или "__call ()" не существуют и не имеют открытого доступа в классе "AppBundle \ Entity \ Todos" «

Я также пытался использовать разные названия, но, похоже, ничего не работает. Я также могу сбросить объект, поэтому он должен быть там, но я просто не могу получить его значения

функция контроллера:

public function listToDo(){
    $todos = $this->getDoctrine()->getRepository(Todos::class)->findAll();
    return $this->render('todo/index.html.twig', ['todos'=>$todos]);
}

Todos.php:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Todos
 *
 * @ORM\Table(name="todos")
 * @ORM\Entity
 */
class Todos 
{
    /**
     * @var integer
     *
     * @ORM\Column(name="ID", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="ToDo", type="text", length=65535, nullable=false)
     */
    private $todo;

    /**
     * Get id
     * 
     * @return integer
     */
    public function getid(){
        return $this->id;
    }

    /**
     * Get todo
     * 
     * @return string
     */
    public function gettodo(){
        return $this->todo;
    }

    public function setTodo($todo){
        $this->todo = $todo;
        return $this;
    }
}

index.html.twig:

...
{% for do in todos %}
    <tr>
        <td>{{ dump(do) }}</td>
        <td>{{ do.id }}</td>
        <td>
        </td>
    </tr>
    {% endfor %} 
...

У кого-нибудь есть идея, чтобы решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 27 января 2019

getid () и gettodo () недопустимы в формате cameCase. вы должны переименовать методы в getId () и getTodo ()

0 голосов
/ 26 января 2019

попробуй заменить

public function getid(){
    return $this->id;
}

public function gettodo(){
    return $this->todo;
}

с

public function getId(){
    return $this->id;
}

public function getTodo(){
    return $this->todo;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...