1
resposta

Coluna não encontrada ao utilizar WITH

Olá, eu estou tentando relacionar duas tabelas com WITH:

$usuarios = User::with('usuario_dados')->where('usuario_dados.identidade', 'LIKE', '%' . $termo . '%')->get();

Mas ele me retorna o erro que a coluna identidade não existe em usuario_dados.

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'usuario_dados.identidade' in 'where clause' (SQL: select * fromuserswhereusuario_dados.identidadeLIKE %725%)

No Model USER, tenho a seguinte função:

public function usuario_dados(){
        return $this->hasOne(Usuario_Dado::class, 'user_id');
}

Onde estou errando?

1 resposta

Aqui, Michel: https://laravel.com/docs/9.x/eloquent-relationships#constraining-eager-loads

Ficaria algo como:

$usuarios = User::with([
    'usuario_dados' => fn ($query) => $query->where('identidade', 'LIKE', "%{$termo}%")
])->get();

PS.: Usuario_Dado além de ser um nome nada descritivo, não segue os padrões de codificação da comunidade PHP.

https://www.php-fig.org/per/coding-style/