Models
Os models são formas práticas de referencias uma tabela do banco de dados dentro do projeto possibilitando (através do eloquent) que haja uma usabilidade e tratamento simples dos dados.
A model deve ser criada em /app/Models:
namespace App\Models;
use \App\Db\Database;
use \Illuminate\Database\Eloquent\Model;
class Product extends Model {}A simples criação do model já estabelece uma conexão, no exemplo acima o model Product está se conectando com a tabela products do banco de dados e considerando que a chave primária será a coluna id. Contudo, existe a chance que seu projeto não siga essa convenção e (talvez) a chave primária seja cd_product, nesses casos será necessário personalizar o model:
class Product extends Model {
        protected $table = 'tb_product';
        protected $primaryKey = 'cd_product';
}Também é possível criar alias para melhorar a leitura do código, certamente é mais prático ler $product->name ou $product->id ao invés de $product->nm_product ou $product->cd_product (respectivamente). Para resolver essa situação é necessário adicionar algumas novas linhas o model:
class Product extends Model {
        // ...
        
        private $aliases = [
            'id'    => 'cd_product',
            'name'  => 'nm_product'
        ];
        public function __get($key) {
            return $this->getAttribute($this->aliases[$key] ?? $key);
        }
}Usando um model
O uso do model pode ser realizado da seguinte forma:
use \App\Models\Product;
class Product {
    public function getProduct() {
        return Product::find(1);
    }
    
    public function getProducts() {
        return Product::all();
    }
}Todas as funções podem ser encontradas na documentação completa aqui.
Last updated