Хобрук: Ваш путь к мастерству в программировании

Семантическая ошибка Symfony

Я получаю эту ошибку: (раньше все было ок, но после некоторых изменений она начала появляться)

[Семантическая ошибка] Аннотация @Expose в свойстве VswSystem\CmsBundle\Entity\Slider::$name никогда не импортировалась.

Возможно, вы забыли добавить оператор использования для этой аннотации?

Код здесь:

<?php

namespace VswSystem\CmsBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use VswSystem\CmsBundle\Entity\SliderImage;
use Doctrine\Common\Collections\ArrayCollection;
use VswSystem\CmsBundle\Entity\Traits\IdentificationalEntity;
use VswSystem\CmsBundle\Entity\Traits\NamedEntity;
use JMS\Serializer\Annotation\Expose;
 
/**
 * Slider
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="VswSystem\CmsBundle\Entity\Repository\SliderRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class Slider
{
    use IdentificationalEntity;
    use NamedEntity;

    /**
     * @var SliderImage
     * @ORM\ManyToMany(targetEntity="SliderImage", cascade={"persist"}, orphanRemoval=true)
     * 
     */
    protected  $slides;

    public function __construct()
    {
        $this->slides = new ArrayCollection();
    }

    
    /**
     * Get all slides
     * @return ArrayCollection
     */
    public function getSlides()
    {
        return $this->slides;
    }

}

Код файла NamedEntity:

<?php
namespace VswSystem\CmsBundle\Entity\Traits;

use Symfony\Component\Validator\Constraints as Assert;


/**
 * Class NamedEntity
 * @package VswSystem\CmsBundle\Entity\Traits
 */
trait NamedEntity
{
    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255, nullable=true)
     * @Assert\NotBlank
     * @Assert\Length(min="3")
     * @Expose
     */
    protected $name;


    /**
     * Set name
     *
     * @param string $name
     * @return File
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }
}

Не могу понять что не так...

28.05.2015

  • Почтовый индекс VswSystem\CmsBundle\Entity\AbstractEntity\File. Потому что это указано в ошибке ;-) 28.05.2015
  • Извините, ошибка была в VswSystem\CmsBundle\Entity\Slider Я отредактировал сообщение об ошибке 28.05.2015
  • скорее всего ошибка в VswSystem\CmsBundle\Entity\Traits\NamedEntity; 28.05.2015
  • @john Smith Я добавил код файла NamedEntity 28.05.2015
  • да, как вы видите, отсутствует оператор использования, просто добавьте его! 28.05.2015

Ответы:


1

Сообщение об ошибке точно указывает на конкретную ошибку.

Вам нужно опустить аннотацию @Expose в определении поля $name или добавить оператор use, где добавить ссылку на класс Expose.

Если вы используете Expose из пакета JMS Serializer, вы должны добавить следующую строку:

use JMS\Serializer\Annotation\Expose;
28.05.2015
Новые материалы

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

React Hooks: основы деструктуризации массива
Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

Пакеты R, используемые в Tesla
Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

Сокращение и слияние токенов для эффективных моделей VL: обзор
Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..