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

[Dúvida] Laravel: QueryExeception Login

Boa tarde!

Realizando o exemplo do curso Laravel de autenticação, com conexão no banco MSSQL e ao simular uma auntenticação com usuário e senha inválido sempre retorna erro no where, ao invés de uma mensagem criada com ->WithErros().

Illuminate \Database \QueryException

SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'where clause'

2 respostas
solução!

Olá, Daniel!

Pelo que entendi, você está tendo problemas com o Laravel ao tentar autenticar um usuário e está recebendo uma exceção de consulta SQL. O erro indica que ele está tentando encontrar uma coluna '0' na cláusula WHERE, que aparentemente não existe.

Isso pode ocorrer se a consulta SQL gerada pelo Laravel está tentando acessar uma coluna que não existe na tabela do seu banco de dados MSSQL. O Laravel usa o Eloquent ORM para abstrair a interação com o banco de dados e, às vezes, pode haver discrepâncias entre o que o Eloquent espera e o que realmente existe no banco de dados.

Aqui estão algumas coisas que você pode verificar:

  1. Verifique se o nome da coluna na cláusula WHERE é realmente válido. Por exemplo, se você está tentando autenticar um usuário, certifique-se de que você está usando o nome correto da coluna para o nome de usuário e senha na sua consulta.

  2. Certifique-se de que a tabela e a coluna que você está tentando acessar realmente existem no seu banco de dados MSSQL. Você pode fazer isso executando uma consulta SQL diretamente no seu banco de dados para verificar a estrutura da tabela.

  3. Verifique se você está usando a versão correta do Laravel e do Eloquent que são compatíveis com o seu banco de dados MSSQL. Às vezes, versões mais antigas do Laravel podem não ser totalmente compatíveis com versões mais recentes do MSSQL.

  4. Se você estiver usando o método ->withErrors() para adicionar mensagens de erro à sua resposta, certifique-se de que está sendo usado corretamente. Este método deve ser usado em um redirecionamento, e as mensagens de erro devem ser passadas como um array ou uma instância de MessageBag.

Por exemplo:

return redirect('form')
            ->withErrors(['name' => 'O nome é obrigatório']);

Espero ter ajudado e bons estudos!

Obrigado pela ajuda Matheus, precisei adicionar o campos que seria adicionado na validação do login e deu certo.

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