Api-платформа фильтра аннотации для многих ко многим - PullRequest
0 голосов
/ 23 ноября 2018

Я следил за реализацией фильтров с аннотацией для загрузки только источников, относящихся к одному пользователю.Очень полезно, работает правильно.

https://api -platform.com / docs / core / filters / # using-doctrine-filters

НО: хочу сделатьто же самое в моей сущности с отношением ManyToMany и не ManyToOne, как это:

<?php

namespace App\Entity;

use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Annotation\ApiSubresource;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Common\Collections\ArrayCollection;
use App\Annotation\UserAware;

/**
 *
 * @ApiResource(routePrefix="/api")
 * @ORM\Entity
 * @ORM\Table(name="albums")
 * @UserAware(userFieldName="user_owner")
 * @UserAware(userFieldName="album_access_user")
 */
class Album
{
    //...

    /**
     * @ORM\ManyToOne(targetEntity="User")
     * @ORM\JoinColumn(nullable=false, name="user_owner", referencedColumnName="id")
    */
    public $userOwner;

    /**
     * @ORM\ManyToMany(targetEntity="User", inversedBy="albums")
     * @ORM\JoinTable(name="album_access")
     * @ORM\JoinTable(
     *  name="album_access",
     *  joinColumns={
     *      @ORM\JoinColumn(name="album_access_album", referencedColumnName="id")
     *  },
     *  inverseJoinColumns={
     *      @ORM\JoinColumn(name="album_access_user", referencedColumnName="id")
     *  }
     * )
    */
    private $accesses;

    //...
}

КАК теперь есть JoinTable, а не просто JoinColum, я должен адаптировать UserFilterConfigurator.phpСобытие, но я не знаю, как это сделать, чтобы дать ему таблицу, а не выровнять столбец ...

Вот логическая ошибка, которую я получаю, потому что я запрашиваю таблицу сущностей, а не таблицу соединений длясейчас:

An exception occurred while executing 'SELECT DISTINCT o0_.id AS id_0, o0_.id AS id_1 FROM albums o0_ WHERE (o0_.album_access_user = '4') ORDER BY o0_.id ASC LIMIT 30':\n\nSQLSTATE[42703]: Undefined column: 7 ERROR:  column o0_.album_access_user does not exist\nLINE 1: ...id_0, o0_.id AS id_1 FROM albums o0_ WHERE (o0_...

Как я могу получить это для ManyToMany <=> как я могу передать столбец good (join) table + (join) ??

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