8000 update filter search · thaivanan/Laravel-API-Server@e2a9703 · GitHub
[go: up one dir, main page]

Skip to content

Commit e2a9703

Browse files
committed
update filter search
1 parent b943ec7 commit e2a9703

File tree

4 files changed

+46
-0
lines changed

4 files changed

+46
-0
lines changed

app/Models/Base.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace App\Models;
44

55
use Illuminate\Database\Eloquent\Model;
6+
use Illuminate\Support\Facades\DB;
67
use Illuminate\Support\Str;
78

89
class Base extends Model
@@ -27,4 +28,19 @@ public function findBySlug($slug) {
2728
}
2829
return $value;
2930
}
31+
32+
public function findByNombre($nombre) {
33+
34+
if (DB::getDriverName() === 'pgsql') {
35+
$like = 'ilike';
36+
} else {
37+
$like = 'like';
38+
}
39+
40+
$value = self::where('nombre', $like, '%' . $nombre . '%')->first();
41+
if($value == null) {
42+
return ['error' => 'No encontrado'];
43+
}
44+
return $value;
45+
}
3046
}

app/Models/Desarrolladora.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,17 @@ public function similar_name($compare, $percentage = 75)
4848
return $des;
4949
}
5050

51+
public function search_desarrolladora($juegos, $nombre)
52+
{
53+
$desarrolladoras = $this->findByNombre($nombre);
54+
55+
if(!isset($desarrolladoras['error'])){
56+
$desarrolladoras = $desarrolladoras->juegables;
57+
$juegos = $juegos->merge($desarrolladoras);
58+
return $juegos;
59+
}
60+
61+
return $juegos;
62+
}
63+
5164
}

app/Models/Genero.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,16 @@ public function juegables()
1919
return $this->morphToMany(Juego::class, 'juegable');
2020
}
2121

22+
public function search_genero($juegos, $nombre)
23+
{
24+
$generos = $this->findByNombre($nombre);
25+
if(!isset($generos['error'])){
26+
$generos = $generos->juegables;
27+
$juegos = $juegos->merge($generos);
28+
return $juegos;
29+
}
30+
31+
return $juegos;
32+
}
33+
2234
}

app/Models/Juego.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,11 @@ public function search($request)
282282
->OrWhere('fecha', $like, '%' . $request->search . '%')
283283
->orderBy($request->filter, $request->order)->get();
284284

285+
$desarrolladora = new Desarrolladora();
286+
$juegos = $desarrolladora->search_desarrolladora($juegos, $request->search);
287+
288+
$genero = new Genero();
289+
$juegos = $genero->search_genero($juegos, $request->search);
285290

286291
if ($juegos == '[]') {
287292
return response()->json(['error' => 'La búsqueda de ' . $request->search . ' no obtuvo ningún resultado'], 221);

0 commit comments

Comments
 (0)
0