Как внедрить объединенный объект в доктрину 2 с помощью построителя запросов - PullRequest
0 голосов
/ 22 мая 2019

У меня есть объекты Article и Category.Эти объекты не связаны с отображением, но мне нужно соединить Category с Article, используя построитель запросов, и в результате мне нужен объект Article с введенным в объекте Category.Как я могу это сделать?

Я искал в Google, но не нашел решения

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

    public function getAll()
    {
        $query = $this->createQueryBuilder('articles')
            ->select('articles, category')
            ->join(\App\Entity\Category::class, 'category', 'WITH', 'articles.categoryId = category.id')
            ->getQuery();

        echo '<pre>';
        print_r($query->getResult());
        exit;
    }
?>

// output

Array
(
    [0] => App\Entity\Article Object
        (
            [id:App\Entity\Article:private] => 1
            [name:App\Entity\Article:private] => title1
            [text:App\Entity\Article:private] => text1
            [categoryId:App\Entity\Article:private] => 1
            [categories:App\Entity\Article:private] => 
        )

    [1] => App\Entity\Category Object
        (
            [id:App\Entity\Category:private] => 1
            [name:App\Entity\Category:private] => first cat
        )

    [2] => App\Entity\Article Object
        (
            [id:App\Entity\Article:private] => 2
            [name:App\Entity\Article:private] => title2
            [text:App\Entity\Article:private] => text2
            [categoryId:App\Entity\Article:private] => 1
            [categories:App\Entity\Article:private] => 
        )

    [3] => App\Entity\Article Object
        (
            [id:App\Entity\Article:private] => 3
            [name:App\Entity\Article:private] => title3
            [text:App\Entity\Article:private] => text3
            [categoryId:App\Entity\Article:private] => 2
            [categories:App\Entity\Article:private] => 
        )

    [4] => App\Entity\Category Object
        (
            [id:App\Entity\Category:private] => 2
            [name:App\Entity\Category:private] => second cat
        )

)

1 Ответ

1 голос
/ 23 мая 2019

Попробуйте следующим образом:

 ->select('articles.id','articles.name','articles.text','articles.categoryId','articles.categories','category.id', 'category.name')

вместо

->select('articles, category')
...