[英]Symfony2 cannot find my doctrine2 entity class in the controller - how to fix?
I'm trying to run a simple SQL statement (something like select * from table) in my Symfony2 controller but it's not working. 我试图在我的Symfony2控制器中运行一个简单的SQL语句(类似select * from table),但是它不起作用。 Somehow Symfony cannot find the class.
Symfony不知何故找不到课程。
some info: 一些信息:
error message: 错误信息:
[Semantical Error] line 0, col 14 near 'Job j ORDER BY': Error: Class 'Job' is not defined.
500 Internal Server Error - QueryException
1 linked Exception:
QueryException »
[2/2] QueryException: [Semantical Error] line 0, col 14 near 'Job j ORDER BY': Error: Class 'Job' is not defined. +
[1/2] QueryException: SELECT u FROM Job j ORDER BY j.name ASC +
settings.yml settings.yml
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver, add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
#auto_mapping: false
#mappings:
# MyAppMyBundle:
# type: annotation
# dir: Entity/
my controller 我的控制器
<?php
// src/MyApp/MyBundle/Controller/JobsController.php
namespace MyApp\MyBundle\Controller;
use MyApp\MyBundle\Entity\Job;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class JobsController extends Controller {
public function listAction() {
$em = $this->getDoctrine()->getEntityManager();
//$qb = $em->createQueryBuilder();
//option1
//$qb ->select("j")
// ->from("Job", "j")
// ->orderBy("j.name", "ASC");*/
//return $this->render('MyBundle:Jobs:list.html.twig', array('jobs' => $qb->getQuery()->getResult()));
//option2
$qb = $em->createQuery("SELECT u FROM Job j ORDER BY j.name ASC");
return $this->render('MyBundle:Jobs:list.html.twig', array('jobs' => $qb->getResult()));
}
}
my entity class 我的实体班
<?php
// src/MyApp/MyBundle/Entity/Job.php
namespace MyApp\MyBundle\Entity;
use Doctrine\ORM\Mapping;
/**
* @Mapping\Entity
* @Mapping\Table(name="jobs")
*/
class Job {
/**
* @Mapping\Column(name="job_id", type="integer")
* @Mapping\Id
* @Mapping\GeneratedValue(strategy="AUTO")
*/
protected $jobId;
/**
* @Mapping\Column(name="name", type="text")
*/
protected $name;
/**
* @Mapping\Column(name="job_desc", type="text")
*/
protected $description;
/**
* @Mapping\Column(name="personal_req", type="text")
*/
protected $requirements;
/**
* Get jobid
*
* @return integer
*/
public function getJobId() {
return $this->applicationId;
}
/**
* Set name
*
* @param \text $name
* @return Job
*/
public function setName($name) {
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return text
*/
public function getName() {
return $this->name;
}
/**
* Set description
*
* @param \text $description
* @return Job
*/
public function setDescription($description) {
$this->description = $description;
return $this;
}
/**
* Get description
*
* @return text
*/
public function getDescription() {
return $this->description;
}
/**
* Set requirements
*
* @param \text $requirements
* @return Job
*/
public function setRequirements($requirements) {
$this->requirements = $requirements;
return $this;
}
/**
* Get requirements
*
* @return text
*/
public function getRequirements() {
return $this->requirements;
}
}
MyAppMyBundle:Job
MyAppMyBundle:Job
进行查询,则使用完整的名称空间 $em->getRepository('MyAppMyBundle:Job')->createQueryBuilder('j')
or $em->getRepository('MyAppMyBundle:Job')->findBy(array(),array('name' => 'ASC')
$em->getRepository('MyAppMyBundle:Job')->createQueryBuilder('j')
或$em->getRepository('MyAppMyBundle:Job')->findBy(array(),array('name' => 'ASC')
php app/console doctrine:mapping:info
and php app/console doctrine:schema:validate php app/console doctrine:mapping:info
和php应用程序/控制台学说:schema:validate验证模型 Exceptions in symfony are always perfect so keep the focus on what your exception says symfony中的异常总是很完美,因此请集中精力处理您的异常所说的内容
verify namespace of entity class. 验证实体类的名称空间。 Because no generate error when write wrong namespace, but no find entity
因为在写入错误的名称空间时没有生成错误,但是没有找到实体
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.