Расширение дерева gedmo/dectrine не может использовать объект в качестве массиваPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Расширение дерева gedmo/dectrine не может использовать объект в качестве массива

Сообщение Anonymous »

Я создал сущность с таблицей закрытия и хранилищем вместе. Я пробую базовый пример создания дерева, но вижу, как ошибка не может использовать объект приложения типа \ Entity \ Discurvess \ Comment As Array при вызове GetCommentTreeFordIscussion
entity:
#[Gedmo\Tree(type: 'closure')]
#[Gedmo\TreeClosure(class: CommentClosure::class)]
#[ORM\Entity(repositoryClass: CommentRepository::class)]
#[ORM\HasLifecycleCallbacks]
class Comment implements Identifiable
{
use IdentifiableEntity;
use TimestampableEntity;

#[ORM\Column(type: 'text')]
private string $content;

#[ORM\ManyToOne(targetEntity: User::class)]
#[ORM\JoinColumn(nullable: false)]
private User $author;

#[ORM\ManyToOne(targetEntity: Discussion::class, inversedBy: 'comments')]
#[ORM\JoinColumn(nullable: false)]
private Discussion $discussion;

#[Gedmo\TreeParent]
#[ORM\ManyToOne(targetEntity: self::class, inversedBy: 'replies')]
#[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')]
private ?Comment $parent = null;

#[ORM\OneToMany(targetEntity: self::class, mappedBy: 'parent', cascade: ['persist', 'remove'])]
private Collection $replies;

#[Gedmo\TreeLevel]
#[ORM\Column(type: 'integer')]
private int $level = 0;

#[ORM\ManyToMany(targetEntity: User::class)]
#[ORM\JoinTable(name: 'comment_likes')]
private Collection $likedBy;

// --- Getters / Setters
< /code>
Закрытие: < /p>
#[ORM\Entity]
class CommentClosure extends AbstractClosure
{
#[ORM\ManyToOne(targetEntity: Comment::class)]
#[ORM\JoinColumn(name: 'ancestor', referencedColumnName: 'id', nullable: false, onDelete: 'CASCADE')]
protected $ancestor;

#[ORM\ManyToOne(targetEntity: Comment::class)]
#[ORM\JoinColumn(name: 'descendant', referencedColumnName: 'id', nullable: false, onDelete: 'CASCADE')]
protected $descendant;
}
< /code>
Repository: < /p>
class CommentRepository extends ClosureTreeRepository
{
public function __construct(EntityManagerInterface $manager)
{
parent::__construct($manager, $manager->getClassMetadata(Comment::class));
}

public function getCommentTreeForDiscussion(Discussion $discussion): array
{
$roots = $this->findBy(['discussion' => $discussion, 'parent' => null], ['createdAt' => 'ASC']);

return $this->buildTree($roots);
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... t-as-array
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»