Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida relacionada ao Model::all()

Bom, minha dúvida é a seguinte, ao colocar no ProdutoController que

$produtos = Produto::all();

eu queria saber como este metódo all() sabe qual tabela no banco de dados ele deve buscar, pq não foi especificada nenhuma tabela, antes estava

$produtos = DB::select('select * from produtos');

e agora mesmo sem especificar qual tabela, ele continua funcionando.

Será que perdi algo?

1 resposta
solução!

Olá, Gabriel.

O Eloquent, que é o ORM utilizado pelo Laravel, utiliza o nome da classe para saber de qual tabela buscar as informações.

Ele realiza um processo chamado de "pluralização", que faz com que Produto se torne produtos. Geralmente este processo é mais seguro com palavras em inglês. Para garantir que ele utilizará a tabela correta, você pode dar uma ajudinha assim:

class Produto extends Model
{
    protected $table = 'produtos';
}

O atributo $table vai informar a tabela utilizada por essa model.

Você pode ver mais detalhes sobre isso aqui: https://laravel.com/docs/5.4/eloquent

Abraços e bons estudos!

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