Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Doctrine Behaviors Laravel Package

eightmarq/doctrine-behaviors

View on GitHub
Deep Wiki
Context7

Tree

Entity

<?php

declare(strict_types=1);

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Contract\Entity\TreeNodeInterface;
use Knp\DoctrineBehaviors\Model\Tree\TreeNodeTrait;

/**
 * [@ORM](https://github.com/ORM)\Entity
 */
class Category implements TreeNodeInterface
{
    use TreeNodeTrait;

    /**
     * [@ORM](https://github.com/ORM)\Column(type="string")
     * [@var](https://github.com/var) string
     */
    private $name;

    public function __toString() : string
    {
        return (string) $this->name;
    }
}

Usage

<?php

/** [@var](https://github.com/var) Knp\DoctrineBehaviors\Contract\Entity\TreeNodeInterface $category */
$category = new Category();
$category->setId(1);

$child = new Category();
$child->setId(2);

$child->setChildNodeOf($category);

$entityManager->persist($child);
$entityManager->persist($category);
$entityManager->flush();

$categoryRepository = $entityManager->getRepository(Category::class);

$root = $categoryRepository->getTree();

$root->getParentNode(); // null
$root->getChildNodes(); // ArrayCollection
$root[0][1]; // node or null
$root->isLeafNode(); // boolean
$root->isRootNode(); // boolean
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route