Устранение неполадок "[Синтаксическая ошибка] Ожидается PlainValue, есть ')'" - PullRequest
6 голосов
/ 14 июня 2011

Я получаю эту ошибку в своем документообороте аннотаций для Doctrine 2:

Doctrine\Common\Annotations\AnnotationException: [Syntax Error] Expected PlainValue, got ')'

После поиска ответа я нашел эту ссылку Вопрос Stackoverflow 3500125 , которыйпо сути, говорит помещать кавычки вокруг всех значений в аннотациях.

При наличии у меня блока аннотаций это кажется невозможным.Вот мой пример, который выдает ошибку.

/**
 * @var tags
 *
 * @ManyToMany(targetEntity="namespace\to\tag")
 * @JoinTable(name="content_tag",
 *   joinColumns={
 *     @JoinColumn(name="content_id", referencedColumnName="id")
 *   },
 *   inverseJoinColumns={
 *     @JoinColumn(name="tag_id", referencedColumnName="id")
 *   }
 * ) // This is the line indicated by the error
 */
private $tags;

Если я последую совету, который я нашел в переполнении стека, который должен заключить в кавычки значения, мой код будет таким:

/**
 * @var tags
 *
 * @ManyToMany(targetEntity="namespace\to\tag")
 * @JoinTable(name="content_tag",
 *   joinColumns="{
 *     @JoinColumn(name="content_id", referencedColumnName="id")
 *   }",
 *   inverseJoinColumns="{
 *     @JoinColumn(name="tag_id", referencedColumnName="id")
 *   }" // Note the extra quotation marks
 * )
 */
private $tags;

Что не правильнона всех.

Ответы [ 2 ]

12 голосов
/ 18 ноября 2017

Для людей, которые пришли сюда, но не из-за доктрины, моей ошибкой было использование одинарных кавычек вместо двойных в аннотации @Routes.

НЕПРАВИЛЬНО:

/**
* @Route('/home')
*/

ПРАВО

/**
* @Route("/home")
*/
2 голосов
/ 23 июня 2011

Это была глупая ошибка, строка ошибки была не очень полезна, поскольку указывала на строку, которую я показал в своем вопросе, как строку, на которой была ошибка.Дело в том, что эта сущность расширяет родительский объект, у родителя есть тег @Entity, а у дочернего - нет, я переместил его, и все работает нормально.

...