Php 如何解决我的“问题”;注意:未定义的偏移量:4“;错误
我的代码有一个问题,当一个用户拥有所有的“站”时,代码工作,但如果他没有一个,我就有(未定义的偏移量*)错误 我的代码是这样的(在我的控制器中) 和我的存储库Php 如何解决我的“问题”;注意:未定义的偏移量:4“;错误,php,symfony,doctrine,Php,Symfony,Doctrine,我的代码有一个问题,当一个用户拥有所有的“站”时,代码工作,但如果他没有一个,我就有(未定义的偏移量*)错误 我的代码是这样的(在我的控制器中) 和我的存储库 public function getEventInRealTime($user) { $qb = $this->createQueryBuilder('u'); $events = $qb ->select('s.id as stationId, COUNT(e) as number, e.l
public function getEventInRealTime($user)
{
$qb = $this->createQueryBuilder('u');
$events = $qb
->select('s.id as stationId, COUNT(e) as number, e.label as type')
->innerJoin('u.stations', 's')
->innerJoin('s.events', 'e')
->where('u = :user')
->setParameter('user', $user)
->andWhere('DAY(e.currentTime) =:day')
->setParameter('day', date('d'))
->andWhere('MONTH(e.currentTime) =:month')
->setParameter('month', date('m'))
->andWhere('YEAR(e.currentTime) =:year')
->setParameter('year', date('Y'))
->groupBy('s.id, type');
$data = $events->getQuery()->getArrayResult();
$result = [];
foreach ($data as $row) {
$result[$row['stationId']][] =
[
'number' => $row['number'],
'type' => $row['type']
];
}
return $result;
}
我认为这是一个问题,就像我做findAll()时,他找不到“站”,但我不知道如何修复它,当用户是超级管理员时,他可以看到所有的站,但如果不是超级管理员,他只能看到他的站可能是重复的,你应该检查$stations=$this->getListOfStations()的输出;$events=$entityManager->getRepository('App:User')->getEventInRealTime($this->getUser());对于这两种类型的用户。您可以得到更好的主意。我建议您检查数组中的数据
public function getEventInRealTime($user)
{
$qb = $this->createQueryBuilder('u');
$events = $qb
->select('s.id as stationId, COUNT(e) as number, e.label as type')
->innerJoin('u.stations', 's')
->innerJoin('s.events', 'e')
->where('u = :user')
->setParameter('user', $user)
->andWhere('DAY(e.currentTime) =:day')
->setParameter('day', date('d'))
->andWhere('MONTH(e.currentTime) =:month')
->setParameter('month', date('m'))
->andWhere('YEAR(e.currentTime) =:year')
->setParameter('year', date('Y'))
->groupBy('s.id, type');
$data = $events->getQuery()->getArrayResult();
$result = [];
foreach ($data as $row) {
$result[$row['stationId']][] =
[
'number' => $row['number'],
'type' => $row['type']
];
}
return $result;
}