1
resposta

Laravel - erro Undefinid offset ao carregar minha view

este é meu método em minha classe linkRepository

public function listaPorGrupoAndCategoria($idCategoria = 1, $idGrupo = 1, $limit = null, $paginate = true) {
//    public function listaPorGrupoAndCategoria($idCategoria = 1, $idGrupo = 1, $limit = null, $paginate = true) {
        $query = $this->newQuery();
        $query->join('grupolinks', 'grupolink_id', '=', 'link_secaos');
        $query->join('categorias', 'categoria_id', '=', 'link_categoria');
        $query->where('link_publico', 1);
        $query->where('categoria_id', $idCategoria);
        $query->where('grupolink_id', $idGrupo);
        $query->where('categoria_site', env('SITE_ID'));
        $query->orderBy('link_ordem', 'ASC');
        return $this->doQuery($query, $limit, $paginate);
    }

este é meu controller, quando dou um dd() em qualquer uma das variaveis $menuPraVoce, $menuParaSindicato, $menuParaIndustria ou $menuSobreNos vejo que a consulta foi feita com sucesso, porém, n meu front está chegando um array vazio, mesmo o meu controller dizendo o contrário

public function __construct(BannerRepository $bannerRepository, ConteudoRepository $conteudoRepository, LinkRepository $linkRepository) {

        $this->bannerRepository = $bannerRepository;
        $this->conteudoRepository = $conteudoRepository;

        $noticias = $this->conteudoRepository->getConteudosPorCategoria(['5'], 60, false);
//        $noticias = $this->conteudoRepository->getConteudosPorCategoria(['774'], 10, false);
        $menuParaVoce = $linkRepository->listaPorGrupoAndCategoria(1, 1, null, false);
        $menuParaIndustria = $linkRepository->listaPorGrupoAndCategoria(2, 1, null, false);
        $menuParaSindicato = $linkRepository->listaPorGrupoAndCategoria(3, 1, null, false);
        $menuSobreNos = $linkRepository->listaPorGrupoAndCategoria(4, 1, null, false);
//        $menuParaVoce = $linkRepository->listaPorGrupoAndCategoria(794, 66, null, false);
//        $menuParaIndustria = $linkRepository->listaPorGrupoAndCategoria(793, 66, null, false);
//        $menuParaSindicato = $linkRepository->listaPorGrupoAndCategoria(792, 66, null, false);
//        $menuSobreNos = $linkRepository->listaPorGrupoAndCategoria(830, 66, null, false);

        View::share(compact('menuParaVoce', 'menuParaIndustria', 'menuParaSindicato', 'menuSobreNos', 'noticias'));
    }

Detalhe, se eu descomentar as linhas que está comentadas ele funciona normalmente. só que preciso que funcione da maneira como está.

Este é o log de meu erro

Next ErrorException: Undefined offset: 0 (View: C:\xampp\htdocs\workspace\sfiemt\resources\views\template\rodape.blade.php) (View: C:\xampp\htdocs\workspace\sfiemt\resources\views\template\rodape.blade.php) (View: C:\xampp\htdocs\workspace\sfiemt\resources\views\template\rodape.blade.php) in C:\xampp\htdocs\workspace\sfiemt\vendor\laravel\framework\src\Illuminate\Support\Collection.php:1563
Stack trace:

Este aqui é meu front

<div class="grupo-links">
            <a href="/para-voce"><h6>Para Você</h6></a>
            <ul>
                @foreach($menuParaVoce as $mnParaVc)
                <li><a href="{{$mnParaVc->link_url}}"
                       target="{{getSysValArray('DestinoLink',$mnParaVc->link_destino)}}">{{$mnParaVc->link_nome}}</a></li>
                @endforeach
            </ul>
        </div>
        <div class="grupo-links">
            <a href="/para-industria"><h6>Para Indústria</h6></a>
            <ul>
                @foreach($menuParaIndustria as $mnParaIndustria)
                <li><a href="{{$mnParaIndustria->link_url}}"
                       target="{{getSysValArray('DestinoLink',$mnParaIndustria->link_destino)}}">{{$mnParaIndustria->link_nome}}</a></li>
                @endforeach
            </ul>
        </div>
        <div class="grupo-links">
            <a href="/para-sindicato"> <h6>Para Sindicato</h6></a>
            <ul>
                @foreach($menuParaSindicato as $mnParaSindicato)
                <li><a href="{{$mnParaSindicato->link_url}}"
                       target="{{getSysValArray('DestinoLink',$mnParaSindicato->link_destino)}}">{{$mnParaSindicato->link_nome}}</a></li>
                @endforeach
            </ul>
        </div>
        <div class="grupo-links">
            <a href="/sobre-nos/86865/institucional"><h6>Institucional</h6></a>
            <ul>
                @foreach($menuSobreNos as $mnSobreNos)
                <li><a href="{{$mnSobreNos->link_url}}"
                       target="{{getSysValArray('DestinoLink',$mnSobreNos->link_destino)}}">{{$mnSobreNos->link_nome}}</a></li>
                @endforeach
            </ul>
        </div>

já quebrei muito a cabeça com isso se alguém puder me dar um help por favor.

1 resposta

Oi Keverson, tudo bom?

Primeiramente, perdão pela demora no retorno da sua dúvida.

Pelo seu erro:

Next ErrorException: Undefined offset: 0 ...

Parece que seu blade está tentando acessar um array vazio (ou algo que não é um array).

Detalhe, se eu descomentar as linhas que está comentadas ele funciona normalmente. só que preciso que funcione da maneira como está. A única diferença entre as linhas comentadas e as linhas descomentadas é o ID que é passado pro repositório filtrar. Tenta verificar qual está sendo o retorno das suas consultas. Algo como:

var_dump(compact('menuParaVoce', 'menuParaIndustria', 'menuParaSindicato', 'menuSobreNos', 'noticias'));
die();

E compartilha aqui com a gente o resultado.

Qualquer problema é só falar.

Abraço