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

Erro de campo desconhecido!

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'contas.id' in 'where clause' (SQL: select * from contas where contas.id = 5 limit 1)

Método Controller:

public function visualizar($id){
        $conta = Conta::find($id);
        if(empty($conta)) {
            return "Essa conta não existe";
        }
        return view('verconta')->with('conta', $conta);
}

Na base meu campo chama ContaID, eu não sei por que no where está colocando "contas.id".

2 respostas
solução!

Bom Dia Rodrigo,

Por padrão o Eloquent assume que o nome da sua chave primária é sempre "id" esse "conta.id" é porque ele coloca o nome da tabela antes, ou seja "tabela.campo" isso porque caso você esteja fazendo um select em mais de uma tabela é muito importante. Para resolver o seu problema você deve informar ao Eloquent que o seu campo tem o nome "ContaID".

Acredito que colocando la no seu model:

protected $primaryKey = 'ContaID';

irá funcionar.

@Tullio está correto na afirmação dele. Basta seguir as orientações dele que seu problema estará resolvido.

Uma alternativa, é alterar o nome do campo para 'id'. Dessa forma já fica no padrão do Eloquent.

Abraços.