有人在 Symfony 3(最后一个版本)中遇到过这个奇怪的问题吗?
我有以下简单的代码:
$repository = $this->getDoctrine()
->getManager()
->getRepository('GeneralRegistrationBundle:Service');
$service = $repository->findOneBy(array('name' => 'Registration'),array('name' => 'ASC'));
$comment = $service->getComment();
$name = $service->getName();
return new Response('le service is '. $name . ', content is ' . $comment);
此代码有效。
我清除缓存并更改
findOneBy
与 findBy
:
$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0);
然后我有以下错误:
错误:调用数组上的成员函数 getComment()
有人有想法或线索吗?
提前致谢。
findBy()
返回具有给定条件的对象数组。
如果没有找到,它返回一个空数组。如果只有一行满足您的条件,那么您可以在
[0]
的最后添加一个 $service
,如下所示:
$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0];
如果没有,您应该使用 foreach 或类似的东西循环找到的数组。
如果您想要并期望一个结果,您可以使用
findOneBy()
功能。
$service = $repository->findOneBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0];
public function index(AnnouncementRepository $announcementRepository, LessonRepository $lessonRepository): Response
{
$announcement = $announcementRepository ->findBy([
'role' => $this -> getUser() ->getRoles()[0]],['date' => 'ASC']);
$lessons = $lessonRepository ->findBy([
'student' => $this->getUser()
]);
return $this->render('student/index.html.twig', [
'announcement' => $announcement [0],
'lessons' => $lessons
]);