Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何解决我的“问题”;注意:未定义的偏移量:4“;错误_Php_Symfony_Doctrine - Fatal编程技术网

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;
}