views:

47

answers:

1

Hi guys, quick symfony / propel question. I have the following propel collection route:

api_offer:
  class: sfPropelRouteCollection
  options:
    prefix_path: /api/offer
    model: Offer
    plural: offers
    singluar: offer
    actions: [ list ]
    module: apiOffer
  requirements:
    sf_format: (?:html|json)

My question is, does anyone know of a way to pass a Criteria to the $this->getRoute()->getObjects(); in the action? Basically I need to retrieve different objects from the database depending on existing parameters in the route.

Thanks for all you help.

A: 

sfPropelRouteCollection has an inherited option from sfObjectRouteCollection called model_methods. This is how it gets used:

protected function getRouteForList()
{
  return new $this->routeClass(
    sprintf('%s.:sf_format', $this->options['prefix_path']),
    array_merge(array('module' => $this->options['module'], 'action' => $this->getActionMethod('list'), 'sf_format' => 'html'), $this->options['default_params']),
    array_merge($this->options['requirements'], array('sf_method' => 'get')),
    array('model' => $this->options['model'], 'type' => 'list', 'method' => $this->options['model_methods']['list'])
  )
}
Maerlyn