Skip to content

Instantly share code, notes, and snippets.

@luckys383
Created June 4, 2019 08:36
Show Gist options
  • Select an option

  • Save luckys383/5aafdd6a3bf85247a79d931bc891c03d to your computer and use it in GitHub Desktop.

Select an option

Save luckys383/5aafdd6a3bf85247a79d931bc891c03d to your computer and use it in GitHub Desktop.
Laravel: Common filters with Model Scope
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Http\Request;
class UsersController extends Controller
{
protected $model;
public function __construct(User $model)
{
$this->model = $model;
}
public function index(Request $request)
{
$builder = $this->model;
if($request->has('role_id')) {
$builder = $builder->where('role_id', $request->input('role_id'));
}
if($request->has('name')) {
$builder = $builder->where('name', 'LIKE', '%'.$request->input('name').'%');
}
if($request->has('email')) {
$builder = $builder->where('email', 'LIKE', '%'.$request->input('email').'%');
}
if($request->has('status')) {
$builder = $builder->where('status', (bool)$request->input('status'));
}
$users = $builder->get();
return view('users.index', [
'users' => $users
]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment