Models - lidam com código que manipula bancos de dados
No Laravel 5 ficam na pasta \app
Cada tabela tem um model correspondente, que é usado para interagir com a tabela. Models permitem consultar a tabela e também inserir registros na mesma.
Ficam em app soltos, mas podemos criar dentro de outras pastas, tendo o cuidado de alterar seu namespace
Todo model Eloquent extend a classe
Illuminate\Database\Eloquent\Model
https://www.youtube.com/watch?v=eFuhNCFrR2E&index=12&list=PLVSNL1PHDWvTQnUQjhBEzY2ZSzJTR9zcZ
Criar uma model com o artisan
php artisan make:model Carro
ou para criar juntamente com a migration:
php artisan make:model Carro -m
Para o laravel uma tabela carros é representada por um model carro.
O comando acima cria uma classe vazia de Model, mas é suficiente.
Agora basta alterar o Controller, passando este model.
Podemos criar um diretório para os models dentro de app
Então passamos este diretório no namespace do model que criamos e de outros que criarmos.
php artisan make:model Produto
Criar uma pasta para os models:
app/Models
Criar o mesmo model em app/Models (já cria com o namespace correto em models)
php artisan make:model Models\\Produto
Para uma tabela chamada produtos um model Produto.
Criar também a migration:
php artisan make:model Models\\Produto -m
No controller adicionar:
use App\Models\Produto;
public function index(Produto $produto){
$produtos = $produto->all();
return view('produtos.index', compact('produtos'));
}
Criar a view index em views/produtos/index.blade.php
<h1>Listagem de Produtos</h1>
<table>
<tr>
<th>Nome</th>
<th>Descrição</th>
</tr>
@foreach($produtos as $produto)
<tr>
<td>{{$produto->nome}}</td>
<td>{{$produto->descricao}}</td>
</r>
@endforeach
</table>
Criar uma rota para produtos
Route::resource('produtos', 'Produtos\ProdutoController');
Comments fornecido por CComment