При выводе данных в twig, выдает следующую ошибку Neither the property "created_at" nor one of the methods "created_at()", "getcreated_at()"/"iscreated_at()"/"hascreated_at()" or "__call()" exist and have public access in class.
хотя если вывести дампом то видно что данные получены. К тому же в сущности есть геттеры и сеттеры а так же это обычное поле datetime и не связано с другими сущностями.В чем же ошибка ?
Entity
<?php
namespace App\Entity;
use App\Repository\NewsRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=NewsRepository::class)
*/
class News
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $title;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $text;
/**
* @ORM\Column(type="string", length=255)
*/
private $url;
/**
* @ORM\Column(type="smallint")
*/
private $status_id;
/**
* @ORM\Column(type="integer")
*/
private $views;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="news")
* @ORM\JoinColumn(nullable=false)
*/
private $author;
/**
* @ORM\ManyToMany(targetEntity=Tag::class, inversedBy="news")
*/
private $tags;
/**
* @ORM\Column(type="datetime")
*/
private $created_at;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updated_at;
/**
* @Assert\File(
* maxSize = "64M",
* mimeTypes = {"image/jpeg", "image/png", "video/JPEG"},
* mimeTypesMessage = "Неверный формат файла.Ожидается jpeg,png",
* )
*/
private $image;
/**
* @ORM\OneToMany(targetEntity=Comment::class, mappedBy="news", orphanRemoval=true)
*/
private $comments;
public function __construct()
{
$this->tags = new ArrayCollection();
$this->comments = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getTitle(): ?string
{
return $this->title;
}
public function setTitle(string $title): self
{
$this->title = $title;
return $this;
}
public function getText(): ?string
{
return $this->text;
}
public function setText(?string $text): self
{
$this->text = $text;
return $this;
}
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl(string $url): self
{
$this->url = $url;
return $this;
}
public function getStatusId(): ?int
{
return $this->status_id;
}
public function setStatusId(int $status_id): self
{
$this->status_id = $status_id;
return $this;
}
public function getViews(): ?int
{
return $this->views;
}
public function setViews(int $views): self
{
$this->views = $views;
return $this;
}
public function getAuthor(): ?User
{
return $this->author;
}
public function setAuthor(?User $author): self
{
$this->author = $author;
return $this;
}
/**
* @return Collection|Tag[]
*/
public function getTags(): Collection
{
return $this->tags;
}
public function addTag(Tag $tag): self
{
if (!$this->tags->contains($tag)) {
$this->tags[] = $tag;
}
return $this;
}
public function removeTag(Tag $tag): self
{
if ($this->tags->contains($tag)) {
$this->tags->removeElement($tag);
}
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->created_at;
}
public function setCreatedAt(\DateTimeInterface $created_at): self
{
$this->created_at = $created_at;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updated_at;
}
public function setUpdatedAt(?\DateTimeInterface $updated_at): self
{
$this->updated_at = $updated_at;
return $this;
}
public function getImage()
{
return $this->image;
}
public function setImage($image): self
{
$this->image = $image;
return $this;
}
/**
* @return Collection|Comment[]
*/
public function getComments(): Collection
{
return $this->comments;
}
public function addComment(Comment $comment): self
{
if (!$this->comments->contains($comment)) {
$this->comments[] = $comment;
$comment->setNews($this);
}
return $this;
}
public function removeComment(Comment $comment): self
{
if ($this->comments->contains($comment)) {
$this->comments->removeElement($comment);
// set the owning side to null (unless already changed)
if ($comment->getNews() === $this) {
$comment->setNews(null);
}
}
return $this;
}
}
Controller
public function indexAction(ContainerInterface $container,NewsRepository $newsRepository, NewFileUploader $fileUp)
{
$news = $newsRepository->findPopulars();
$mostPopular = $newsRepository->findMostPopular();
return $this->render('main/index.html.twig',[
'news' => $news,
'fileUp' => $fileUp,
'mostPopular' => $mostPopular
]);
}
View
{% if news %}
<div class="col-md-6">
<div class="row">
{% for post in news %}
<div class="col-md-6 col-6 paddding animate-box" data-animate-effect="fadeIn">
<div class="fh5co_suceefh5co_height_2"><img src="{{ asset(fileUp.getImage(post.id)) }}" alt="img"/>
<div class="fh5co_suceefh5co_height_position_absolute"></div>
<div class="fh5co_suceefh5co_height_position_absolute_font_2">
<div class=""><a href="#" class="color_fff"> <i class="fa fa-clock-o"></i> {{post.created_at|date('Y-m-d')}}</a></div>
<div class=""><a href="{{ path('show', {url: post.url}) }}" class="fh5co_good_font_2">{{post.text|slice(0,100)}}</a></div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
{% endif %}