Curso de Laravel para Noobs - #18 Models IX [whereIn]
17/07/2023Neste tutorial aprenderemos como realizar consultas no banco de dados do Laravel tendo como origens arrays. Para isso, utilizaremos o método whereIn.
Query com arrays no Laravel
Para usar a cláusula "WHERE IN" no Laravel, você pode usar o método whereIn do construtor de consultas (QueryBuilder). O método whereIn permite que você especifique uma coluna e uma matriz de valores para procurar nessa coluna.
Primeiramente vamos criar um model de exemplo que será o model Filme:
Criando o model e a migration
php artisan make:model Filme -mcr
Posteriormente vamos criar uma migration bem simples e exportar para o banco:
public function up()
{
Schema::create('filmes', function (Blueprint $table) {
$table->id();
$table->string('nome');
$table->string('categoria');
$table->timestamps();
});
}
php artisan migrate
routes/web.php
Criaremos a rota relativa ao exemplo desta aula:
Route::resource('/filmes',\App\Http\Controllers\FilmeController::class);
views/filmes.blade.php
Criei uma view chamada filme (não se preocupe, ainda falaremos sobre views):
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="{{url('filmes')}}" method="post">
@csrf
<input type="checkbox" name="categoria[]" value="TERROR"> TERROR <br>
<input type="checkbox" name="categoria[]" value="AÇÃO"> AÇÃO <br>
<input type="checkbox" name="categoria[]" value="ROMANCE"> ROMANCE <br>
<input type="submit">
</form>
</body>
</html>
app/Http/Controllers/FilmeController.php
No controller, iremos chamar o método index para trazer a view acima e um outro método para testar o whereIn do Laravel:
public function index()
{
return view('filmes');
}
public function store(Request $request)
{
$categorias = $request->categoria;
$filmes = Filme::whereIn('categoria',$categorias)->get();
$html = 'Os filmes que você selecionou são:
';
foreach ($filmes as $filme){
$html .= $filme->nome.'
';
}
echo $html;
}
Por hoje é só! Fiquem todos com Deus! Sucesso nos códigos e na vida!
Precisa de suporte? webdesignemfoco@gmail.com