Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Undefined method 'orderBy'

Meu código está funcionando porém estou recebendo um erro no vscode 'Undefined method 'orderBy''.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

<?php

namespace App\Models;

use Illuminate\Contracts\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Serie extends Model
{
    use HasFactory;

    protected $fillable = ['name', 'id'];

    public function seasons()
    {
        return $this->hasMany(Season::class, 'series_id');
    }

    //ordenar nome
    protected static function booted()
    {
        self::addGlobalScope('ordered', function (Builder $queryBuilder)
        {
            $queryBuilder->orderBy('name');
        });
    }
}

Oque faço para me livrar desse erro?

2 respostas
solução!

Olá, Fábio.

Tudo bem?

Pela descrição do seu problema, parece que o Visual Studio Code está indicando um erro de "Undefined method 'orderBy'" na sua Model do Laravel. No entanto, você mencionou que o código está funcionando corretamente. Isso sugere que o problema pode estar relacionado com a extensão de análise de código PHP que você está usando, provavelmente o Intelephense.

Aqui estão algumas sugestões para resolver esse aviso:

  1. Verifique se o Intelephense está atualizado: Às vezes, atualizar a extensão pode resolver problemas de detecção incorreta de métodos.

  2. Limpe o cache do Intelephense: O Intelephense armazena informações sobre o código para análise e, às vezes, o cache pode ficar desatualizado. Você pode limpar o cache abrindo a paleta de comandos (Ctrl+Shift+P) e digitando "Intelephense: Clear Cache".

  3. Adicione stubs para o Laravel: Stubs são arquivos que fornecem dicas para o Intelephense sobre métodos e propriedades. Você pode adicionar stubs para o Laravel que ajudarão o Intelephense a entender melhor o código do Laravel.

  4. Ignore o erro: Se o código estiver funcionando como esperado e você estiver certo de que o método orderBy existe e é válido, você pode optar por ignorar esse aviso. No Intelephense, você pode adicionar comentários de docblock para suprimir avisos específicos.

  5. Verifique o namespace: Certifique-se de que o namespace Illuminate\Contracts\Database\Eloquent\Builder está correto e que deveria ser Illuminate\Database\Eloquent\Builder. Se você estiver usando um namespace errado, isso pode causar problemas de detecção de métodos.

Se após tentar essas sugestões o problema persistir, pode ser útil buscar suporte específico para o Intelephense ou considerar usar outra extensão de análise de código PHP para o Visual Studio Code.

Espero ter ajudado e bons estudos!

Deu certo. obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software