Как передать объект запроса в метод, определенный в generator.yml с table_method - PullRequest
1 голос
/ 27 октября 2011

Как передать объект запроса методу doJoin, настроенному в generator.yml?

generator.yml:

generator:
  param:
    config:
      list:      
        table_method: doJoin

ItemTable.class.php:

public static function doJoin(Doctrine_Query $q)
{
    $rootAlias = $q->getRootAlias($q);

    return $q->select($rootAlias.'.*, p.currency_code, p.customer_price')
        ->innerJoin($rootAlias.'.Price p')
        ->where('p.currency_code = \'USD\'');

}

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Вы можете переопределить метод buildQuery() в actions.class.php, чтобы принять параметр запроса ...->$table_method($query, $this->getRequest():

protected function buildQuery()
{
  $tableMethod = $this->configuration->getTableMethod();
    $query = Doctrine::getTable('CLASS_NAME')
    ->createQuery('a');

  if ($tableMethod)
  {
    $query = Doctrine::getTable('CLASS_NAME')->$table_method($query, $this->getRequest());
  }

  $this->addSortQuery($query);

  $event = $this->dispatcher->filter(new sfEvent($this, 'admin.build_query'), $query);
  $query = $event->getReturnValue();

  return $query;
}

Тогда вы меняете ItemTable.class.php:

public static function doJoin(Doctrine_Query $q, sfWebRequest $request)
0 голосов
/ 27 октября 2011

Вы можете использовать:

sfContext::getInstance()->getRequest()->getParameter('whatever_you_want');
...