The widget sfWidgetFormDoctrineChoice accepts option 'table_method', where you can define a method that returns a query, a collection of objects or a single object. This allows you to customize the results of our widget.
However, the problem is that it is impossible to pass parameters to this method, which may be necessary. One solution is to create a custom widget that accept parameters to it.
Here's a snippet, which allows you to select only one column in a query, and access to the result in symfony.
$c = new Criteria();
$c->clearSelectColumns();
$c->addSelectColumn(objectPeer::COUNTRY);
$c->setDistinct();
$res = objectPeer::doSelectStmt($c);
while ($row = $res->fetch()) {
$country = $row[0];
}
?>
Works with Propel 1.4 and symfony 1.3/1.4.