Пример #1
0
 public function search($input)
 {
     $query = Author::query();
     $columns = Schema::getColumnListing('authors');
     $attributes = array();
     foreach ($columns as $attribute) {
         if (isset($input[$attribute]) and !empty($input[$attribute])) {
             $query->where($attribute, $input[$attribute]);
             $attributes[$attribute] = $input[$attribute];
         } else {
             $attributes[$attribute] = null;
         }
     }
     return [$query->get(), $attributes];
 }
 /**
  * @param Request $request
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function getAuthorByBook(Request $request)
 {
     $apiRequest = RequestFactory::create();
     $page = $apiRequest->getPage();
     if (!$page->size()) {
         $page->setSize(10);
         //Default elements per page
     }
     $resource = new ListResource($this->serializer, $page, $apiRequest->getFields(), $apiRequest->getSort(), $apiRequest->getIncludedRelationships(), $apiRequest->getFilters());
     $totalAmount = function () use($request) {
         $id = (new Author())->getKeyName();
         return Author::query()->where('id', '=', $request->author_id)->get([$id])->count();
     };
     $results = function () use($request) {
         return EloquentHelper::paginate($this->serializer, Author::query()->where('id', '=', $request->author_id))->get();
     };
     $uri = route('api.authors.show', ['id' => $request->author_id]);
     return $resource->get($totalAmount, $results, $uri, Author::class);
 }