Query Parameters: SearchΒΆ
Below you see how to setup a Search Query Parameter, on a Model:
- First, you need to define searchable fields on the Model Repository
<?php
namespace App\Containers\User\Data\Repositories;
class UserRepository extends Repository
{
protected $fieldSearchable = [
'name' => 'like',
'id' => '=',
'email' => '=',
];
}
- Next, you need to create a basic
List
andSearch Task
<?php
namespace App\Containers\User\Tasks;
class ListUsersTask extends Task
{
private $userRepository;
public function __construct(UserRepositoryInterface $userRepository)
{
$this->userRepository = $userRepository;
}
public function run()
{
return $this->userRepository->paginate();
}
}
- Create an
Action
to call this Task
<?php
namespace App\Containers\User\Actions;
class ListAndSearchUsersAction extends Action
{
public function run()
{
return Hive::call(ListUsersTask::class, [], ['applyRequestCriteria']);
}
}
- Use the Action from a Controller
<?php
public function listAllUsers(Request $request)
{
$users = Hive::call(ListAndSearchUsersAction::class);
return $this->transform($users, UserTransformer::class);
}
- Call it from anywhere as follow
GET http://api.hive.local/users?search=example@test.com