Error: class ... does not have a field or association with a name

I have this problem when I upload files to the server.

Error: Class Prizes\PrizesBundle\Entity\Category has no field or association named order_cat 

Class of my category:

  <?php namespace Prizes\PrizesBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Gedmo\Mapping\Annotation as Gedmo; /** * @ORM\Entity * @ORM\Table(name="category") */ class Category { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @Gedmo\Translatable * @ORM\Column(type="string", length=45, nullable=false) */ private $name; /** * @Gedmo\Translatable * @ORM\Column(type="string", length=45, nullable=false) */ private $description; /** * @ORM\Column(type="string", length=255, nullable=false) */ private $thumb; /** * @ORM\Column(type="string", length=255, nullable=false) */ private $img; /** * @ORM\ManyToOne(targetEntity="Optime\AppStatusBundle\Entity\Status") * @ORM\JoinColumn(name="status", referencedColumnName="id") */ private $status; /** * @Gedmo\Timestampable(on="create") * @ORM\Column(type="datetime") */ private $created; /** * @Gedmo\Timestampable(on="update") * @ORM\Column(type="datetime") */ private $modified; /** * @ORM\ManyToMany(targetEntity="Prize") * @ORM\JoinTable(name="prize_has_category", * joinColumns={@ORM\JoinColumn(name="category", referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="prize", referencedColumnName="id")} * ) */ private $prizes; /** * @Gedmo\Locale * Used locale to override Translation listener`s locale * this is not a mapped field of entity metadata, just a simple property */ private $locale; /** * @Gedmo\Translatable * @ORM\Column(type="string", length=45, nullable=false) */ private $order_cat; // /** // * @Gedmo\TreeLeft // * @ORM\Column(name="lft", type="integer") // */ // private $lft; // /** // * @Gedmo\TreeLevel // * @ORM\Column(name="lvl", type="integer") // */ // private $lvl; // /** // * @Gedmo\TreeRight // * @ORM\Column(name="rgt", type="integer") // */ // private $rgt; // /** // * @Gedmo\TreeRoot // * @ORM\Column(name="root", type="integer", nullable=true) // */ // private $root; // /** // * @Gedmo\TreeParent // * @ORM\ManyToOne(targetEntity="Category", inversedBy="children") // * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="SET NULL") // */ // private $parent; // /** // * @ORM\OneToMany(targetEntity="Category", mappedBy="parent") // * @ORM\OrderBy({"lft" = "ASC"}) // */ // private $children; public function __construct( ) { $this->prizes = new \Doctrine\Common\Collections\ArrayCollection( ); } public function getId( ) { return $this->id; } public function setName( $name ) { $this->name = $name; } public function getName( ) { return $this->name; } public function setDescription( $description ) { $this->description = $description; } public function getDescription( ) { return $this->description; } public function setThumb( $thumb ) { $this->thumb = $thumb; } public function getThumb( ) { return $this->thumb; } public function setImg( $img ) { $this->img = $img; } public function getImg( ) { return $this->img; } public function setStatus( \Optime\AppStatusBundle\Entity\Status $status ) { $this->status = $status; } public function getStatus( ) { return $this->status; } public function getCreated( ) { return $this->created; } public function getModified( ) { return $this->modified; } public function getPrizes( ) { return $this->prizes; } public function getOrderCat(){ return $this->order_cat; } public function setOrderCat($order_cat){ $this->order_cat = $order_cat; } static public function getListDQL( ) { return "SELECT cat FROM " . Category::getFQCN( ) . " cat WHERE cat.status = 1"; } static public function getFQCN( ) { return 'Prizes\PrizesBundle\Entity\Category'; } } 

This is how I create the form

 public function buildForm( FormBuilder $builder, array $options ) { $query = new QueryBuilder( $this->em); $query->addSelect( 's' )->from( Status::getFQCN( ), 's' )->join( 's.status_entity', 'se' )->where( "se.name = 'Prize'" ); $builder->add( 'status', 'entity', array ( 'class' => 'AppStatusBundle:Status', 'property' => 'name', 'query_builder' => $query, "required" => false, 'empty_value' => ' - SELECT - ') ); $builder->add( 'name', 'text', array ( "required" => false) ); $builder->add( 'country', 'entity',array ('class' => 'CSCBundle:SystemCountry', 'property' => 'country.name', "required" => false, 'empty_value' => ' - SELECT - ') ); $builder->add( 'category', 'entity', array ('class' => 'PrizesBundle:Category', 'property' => 'name', "required" => false, 'empty_value' => ' - SELECT - ', 'query_builder' => function(EntityRepository $er) { return $er->createQueryBuilder('c')->join( 'c.status', 's' )->where( "s.name = 'Alive'") ->orderBy('c.order_cat', 'ASC'); },) ); $builder->add('brand', 'entity', array ( 'class' => 'PrizesBundle:Brand', 'property' => 'name', "required" => false, 'empty_value' => ' - SELECT - ') ); } 

I used to have

 return "SELECT cat FROM " . Category::getFQCN( ) . " cat WHERE cat.status = 1 ORDER BY cat.order_cat" 

instead of this

 SELECT cat FROM " . Category::getFQCN( ) . " cat WHERE cat.status = 1 

but when I try this, I get [Semantical Error] line 0, col 108 near 'order_cat AS': Error: Class Prizes\PrizesBundle\Entity\Category has no field or association named order_cat

What am I doing wrong? How can i fix this? I already deleted the cache and checked the files.

EDIT: I need an answer to both errors.

+4
source share
3 answers

The code looks fine. You can try the following:

The field with the name order_cat is private , so it is possible that due to the restriction of reflection, this field cannot be accessed directly, but only through getters / setters.

Have you tried ORDER BY cat.orderCat ?

+8
source

Try changing to reflect the receiver:

 WHERE cat.status = 1 ORDER BY cat.OrderCat 
0
source

If after checking the code you still get this error, the problem may be creating proxy classes from Doctrine. If you use the APC cache, you need to clear it in order to use the newly created proxy classes.

0
source

Source: https://habr.com/ru/post/1493747/


All Articles