- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是,我有表 movies_status,其中有两个外键:“movie”和“who”。我正在尝试进行 DQL 查询,我在其中按对象、外键 ID 找到单行,但它什么也没找到。
实体:
/**
*
* @var type
*
* @ORM\ManyToOne(targetEntity="movies")
* @ORM\JoinColumn(name="movie", referencedColumnName="id")
*/
private $movie;
/**
*
* @var type
*
* @ORM\ManyToOne(targetEntity="list_base")
* @ORM\JoinColumn(name="who", referencedColumnName="id")
*/
private $who;
Controller
/**
*
* @Route("/introduction/updateTime", options={"expose"=true}, name="int_update_time")
* @Method("post")
*/
public function updateTimeAction(Request $request) {
$time = floor($request->request->get('time'));
$movieUsId = $request->request->get('film_id');
$userId = $request->request->get('id');
$em = $this->getDoctrine()->getManager();
$movie = $em->getRepository('MainBundle:movies')->findOneBy(['useable_id' => $movieUsId]);
$user = $em->getRepository('MainBundle:list_base')->findOneById($userId);
//here it finds nothing
$moviesStatus = $em->getRepository('MainBundle:movies_status')->findOneBy(['who' => $user, 'movie' => $movie]);
$currentTime = $moviesStatus->getFilmTime();
$moviesStatus->setFilmTime($time);
$em->persist($moviesStatus);
$em->flush();
if ($time == $currentTime) {
return new Response("koniec");
}
return new Response("ok " . $time . " " . $userId . " " . $movieUsId . " " . $movie->getId() . " " . $user->getFirstName());
}
错误总是:
Call to a member function getFilmTime() on null
在 Controller 中,我也尝试通过 ID 进行搜索,但仍然一无所获。我还尝试在存储库中创建自定义查询:
public function findOneMS($user, $movie) {
$q = $this->getEntityManager()
->createQuery('SELECT u FROM MainBundle:movies_status u WHERE u.who = :userId AND u.movie = :movieId')
->setParameter('userId', $user)
->setParameter('movieId', $movie)
->getSingleResult();
return $q;
}
是的,行存在于数据库中。提前致谢。
最佳答案
您的两个多对多关系已经创建了两个额外的表,您应该在您的请求中使用它们。
查询应该如下所示:
SELECT s.id FROM movies_status s, movies_status_movies m, movies_status_list_base u WHERE s.id = m.movies_status_id AND s.id = u.movies_status_id AND m.movie_id = :movieId AND u.list_base_id = :userId
然后通过返回的 id 加载您的实体。
关于php - Doctrine2 - FindOneBy 外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42807222/
我在一个项目中使用 Doctrine,我必须找到一个值。如果这样的值不存在或者如果有多个值,则必须启动另一个进程。我想我应该为此使用 findOneBy 函数。现在我想知道如果结果不是单个值,这个函数
有人在 Symfony 3(最后一个版本)中遇到过这个奇怪的问题吗? 我有以下简单的代码: $repository = $this->getDoctrine()
我的问题是,我有表 movies_status,其中有两个外键:“movie”和“who”。我正在尝试进行 DQL 查询,我在其中按对象、外键 ID 找到单行,但它什么也没找到。 实体: /** *
我正在使用 Symfony2.3 和以下版本的学说组件(composer show -i | grep 学说)开发一个遗留项目: doctrine/annotations
我正在创建只有两个实体的小型应用程序,Order 和 Shipment。 Shipment 实体如下:(为了简短起见删除了方法) /** * @var integer $id * * @ORM\
我在使用 Doctrine 中的 findOneBy() 函数时遇到问题。我想在该函数中使用 OR 条件。这是我的示例代码: $data = $this->getDoctrineRepo(Employ
$em = $this->getDoctrine()->getEntityManager(); $repository = $em->getRepository('UserBundle:items')
我尝试理解 Doctrine 方面的一些奇怪行为,例如: 我有一个简单的表单,并在最后创建表单的请求中发送参数。 /** * Displays a form to create a new Comm
我已经查过了 this但我的错误似乎有所不同。 我收到此错误: [2012-05-07 14:09:59] request.CRITICAL: BadMethodCallException: Unde
我有一种情况,我想使用 symfony2 中的 doctrine 中的 findOneBy($id) 方法查询数据库。 $namePosting = $this->getDoctrine()->get
我目前正在使用 Symfony2 并且收到此错误消息: 未定义的方法“getDoctrine”。方法名称必须以 findBy 或 findOneBy 开头! 500 内部服务器错误 - BadMeth
我正在处理part4 of Symfony2 ,在更新 Controller 和辅助类代码时,我收到以下错误消息 Undefined method 'getLatestBlogs'. The meth
我有一个带有列类型数组的实体 /** * Report entity * * @ORM\Table(name="report") * @ORM\Entity(repositoryClass="
如果我模拟存储库方法 find 我会得到预期的结果,但如果我调用 findBy、findOneBy、findOneById 中的任何一个,我总是得到 null。 代码示例: $mock->expect
我正在使用原则 2.4 从事 symfony 2.5 项目。 我想使用缓存 ID 和缓存时间来缓存查询结果,这样我就可以在需要时通过管理员删除缓存结果。 我可以使用“createQueryBuilde
使用 Symfony2、Doctrine 和 MySQL,我使用 findOneBy 方法。 在谈论字符串条件字段时,我需要它考虑大写字母。 示例:假设我的数据库中的某个表中有这个 path 字段。
我是一名优秀的程序员,十分优秀!