2015-06-11 4 views
0

Я пытаюсь написать веб-службу, чтобы получить список категорий и всю бизнес под этой категорией в режиме вложенного массива.Семантическая ошибка в symfony2 при извлечении данных

Я получаю семантические ошибки, говоря:

{ 
    code: 500 
    message: "[Semantical Error] line 0, col 14 near 'StreetBumbApiBundle:Buss_owner': Error: Class 'StreetBumb\ApiBundle\Entity\Buss_owner' is not defined." 
} 

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

Это как функция моего контроллера выглядит следующим образом:

public function getCategoryAction(){ 

    $em = $this->getDoctrine()->getEntityManager(); 
    $pro = $em->getRepository('StreetBumbApiBundle:Category') 
     ->getBusinessByCategory(); 
    //return $pro; 
    $i = 0; 
    foreach($pro as $p) 
    { 
     $data['category'][$i]['id'] = $p->getId(); 
     $data['category'][$i]['Name'] = $p->getCatName(); 
     //$result[$i] = $p->getId(); 

     $catId = $p->getId(); 

     $business = $em->createQuery('SELECT b FROM StreetBumbApiBundle:Buss_owner b WHERE b.catId = :catId')->setParameter('catId', $catId); 
     $result = $business->getResult(); 
     foreach($result as $r) 
     { 
      $data['business'][$i]['id'][] = $r->getId(); 
     } 
     $i++; 

    } 
    return $data; 
} 

Пожалуйста, руководство, если кто-нибудь есть идея .. Thanx

UPDATE: Buss_owner Entity:

<?php 

namespace StreetBumb\ApiBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Buss_owner 
* 
* @ORM\Table() 
*  @ORM\Entity(repositoryClass="StreetBumb\ApiBundle\Entity\Buss_ownerRepository") 
*/ 
class Buss_owner 
{ 
/** 
* @var integer 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @var string 
* 
* @ORM\Column(name="name", type="string", length=50) 
*/ 
private $name; 

/** 
* @var string 
* 
* @ORM\Column(name="email", type="string", length=255) 
*/ 
private $email; 

/** 
* @var integer 
* 
* @ORM\Column(name="phno", type="integer") 
*/ 
private $phno; 

/** 
* @var string 
* 
* @ORM\Column(name="address", type="string", length=255) 
*/ 
private $address; 

/** 
* @var string 
* 
* @ORM\Column(name="password", type="string", length=255) 
*/ 
private $password; 

/** 
* @var string 
* 
* @ORM\Column(name="fbId", type="integer") 
*/ 
private $fbId; 

/** 
* @var string 
* 
* @ORM\Column(name="uniqueId", type="string", length=255) 
*/ 
private $uniqueId; 

/** 
* @var integer 
* 
* @ORM\Column(name="catId", type="integer") 
* @ORM\ManyToMany(targetEntity="Category", mappedBy="Buss_owner") 
*/ 
private $catId; 

public function __construct() { 
    $this->catId = new \Doctrine\Common\Collections\ArrayCollection(); 
} 
/** 
* Get id 
* 
* @return integer 
*/ 
public function getId() 
{ 
    return $this->id; 
} 

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

    return $this; 
} 

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

/** 
* Set email 
* 
* @param string $email 
* @return Buss_owner 
*/ 
public function setEmail($email) 
{ 
    $this->email = $email; 

    return $this; 
} 

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

/** 
* Set phno 
* 
* @param integer $phno 
* @return Buss_owner 
*/ 
public function setPhno($phno) 
{ 
    $this->phno = $phno; 

    return $this; 
} 

/** 
* Get phno 
* 
* @return integer 
*/ 
public function getPhno() 
{ 
    return $this->phno; 
} 

/** 
* Set address 
* 
* @param string $address 
* @return Buss_owner 
*/ 
public function setAddress($address) 
{ 
    $this->address = $address; 

    return $this; 
} 

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

/** 
* Set catId 
* 
* @param integer $catId 
* @return Buss_owner 
*/ 
public function setCatId($catId) 
{ 
    $this->catId = $catId; 

    return $this; 
} 

/** 
* Get catId 
* 
* @return integer 
*/ 
public function getCatId() 
{ 
    return $this->catId; 
} 

/** 
* Set password 
* 
* @param string $password 
* @return Buss_owner 
*/ 
public function setPassword($password) 
{ 
    $this->password = $password; 

    return $this; 
} 

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

/** 
* Set uniqueId 
* 
* @param string $uniqueId 
* @return Buss_owner 
*/ 
public function setUniqueId($uniqueId) 
{ 
    $this->uniqueId = $uniqueId; 

    return $this; 
} 

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

/** 
* Set fbId 
* 
* @param integer $fbId 
* @return Buss_owner 
*/ 
public function setFbId($fbId) 
{ 
    $this->fbId = $fbId; 

    return $this; 
} 

/** 
* Get fbId 
* 
* @return integer 
*/ 
public function getFbId() 
{ 
    return $this->fbId; 
} 

} 
+0

Сообщите нам, пожалуйста, ваше лицо 'Buss_owner'. – BentCoder

+0

@BentCoder Обновлен мой вопрос с помощью объекта 'Buss_owner' – Geetika

ответ

1

Я считаю, проблема заключается в подчеркивании имени сущности.

Соглашение об именовании Доктрины - использовать CamelCase, который затем преобразует в символы подчеркивания в базе данных. Из-за этого за кулисами магия подчеркивает может вызвать проблемы в именах сущностей.

Попробуйте изменить имя класса сущности на BussOwner и вызвать это в контроллере. Если вы не можете изменить имя таблицы, вы можете обработать это, изменив аннотацию объекта на:

@ORM\Table(name="buss_owner") 
Смежные вопросы