Newscoop\Criteria\ArticleSearchCriteria::fillFromRequest PHP Method

fillFromRequest() public method

public fillFromRequest ( Request $request )
$request Symfony\Component\HttpFoundation\Request
    public function fillFromRequest(Request $request)
    {
        foreach ($this as $key => $value) {
            $this->{$key} = $request->get($key, false);
        }
    }

Usage Example

 /**
  * Search for articles.
  *
  * Parameter 'query' contains keywords seperated with ",". Example: test,article,keyword3
  *
  * @ApiDoc(
  *     statusCodes={
  *         200="Returned when successful",
  *         404={
  *           "Returned when the articles are not found"
  *         }
  *     },
  *     parameters={
  *         {"name"="query", "dataType"="string", "required"=true, "description"="article serach query"},
  *         {"name"="publication", "dataType"="string", "required"=false, "description"="Filter by publication"},
  *         {"name"="issue", "dataType"="string", "required"=false, "description"="Filter by issue"},
  *         {"name"="section", "dataType"="string", "required"=false, "description"="Filter by section"},
  *         {"name"="language", "dataType"="string", "required"=false, "description"="Filter by language"},
  *         {"name"="article_type", "dataType"="string", "required"=false, "description"="Filter by article type"},
  *         {"name"="publish_date", "dataType"="string", "required"=false, "description"="Filter by publish date"},
  *         {"name"="published_after", "dataType"="string", "required"=false, "description"="Filter by published after date"},
  *         {"name"="published_before", "dataType"="string", "required"=false, "description"="Filter by published before date"},
  *         {"name"="author", "dataType"="integer", "required"=false, "description"="Filter by author"},
  *         {"name"="creator", "dataType"="integer", "required"=false, "description"="Filter by creator"},
  *         {"name"="status", "dataType"="string", "required"=false, "description"="Filter by status"},
  *         {"name"="topic", "dataType"="integer", "required"=false, "description"="Filter by topic"}
  *     }
  * )
  *
  * @Route("/search/articles.{_format}", defaults={"_format"="json"}, options={"expose"=true})
  *
  * @Method("GET")
  * @View(serializerGroups={"list"})
  *
  * @return array
  */
 public function searchArticlesAction(Request $request)
 {
     $articleSearch = $this->container->get('search.article');
     $publication = $this->get('newscoop.publication_service')->getPublication();
     $onlyPublished = true;
     try {
         $user = $this->container->get('user')->getCurrentUser();
         if ($user && $user->isAdmin()) {
             $onlyPublished = false;
         }
     } catch (AuthenticationException $e) {
         /* User is not logged in */
     }
     $articleSearchCriteria = new ArticleSearchCriteria();
     $articleSearchCriteria->fillFromRequest($request);
     $articles = $articleSearch->searchArticles($articleSearchCriteria, $onlyPublished);
     $paginator = $this->get('newscoop.paginator.paginator_service');
     $articles = $paginator->paginate($articles, array('distinct' => false));
     return $articles;
 }
ArticleSearchCriteria