Объявив сущность другой сущности, получите название категории, которое будет установлено в категории товаров - PullRequest
0 голосов
/ 19 декабря 2018

Я запутался.

У меня есть ProductRepository.php, который управляет всем продуктом, затем у меня есть атрибут category, который должен быть подключен к CategoryRepository.php или объекту категории.

вот мой код в ProductRepository.php

namespace App\Repository;

use App\Entity\Product;
use App\Entity\Category;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Symfony\Bridge\Doctrine\RegistryInterface;

class ProductRepository extends ServiceEntityRepository
{
    public function __construct(RegistryInterface $registry)
    {
        parent::__construct($registry, Product::class);
    }

    public function transform(Product $product)
    {
        $category = Category($product->getCategory()); // error
        $category = $category->getName();

        return [
                'id'    => (int) $product->getId(),
                'name' => (string) $product->getName(),
                'category' => (int) $product->getCategory(),
                'category_name' => (string) $category,
                'SKU' => (string) $product->getSKU(),
                'price' => (float) $product->getPrice(),
                'quantity'    => (int) $product->getQuantity()
        ];
    }

Моя проблема, я получил ошибку при объявлении класса Category, есть идеи по этому поводу?моя цель - получить category name из атрибута категории продукта, который является id из категории category model

Модель:

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\CategoryRepository")
 */
class Category
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

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

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

    public function setName(string $name): self
    {
        $this->name = $name;

        return $this;
    }
}

1 Ответ

0 голосов
/ 19 декабря 2018

Мне кажется, я понимаю, что вы пытаетесь сделать.

Предполагая, что Product :: category является отношением между классами Product и Category:

 $categoryName = $product->getCategory()->getName();

Вы просто получаете объект Categoryа затем получить его имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...