sfPropelPlugin это плагин для работы с Propel 1.3. Текущая версия 1.3.0 stable от 28/05/2008. Наткнулся на проблему при использовании виджета sfWidgetFormPropelSelect. Если указать порядок сортировки, то получаем ошибку на экран.
Например, имеем форму со следующий кодом:
class BaseNewsForm extends BaseFormPropel { public function setup() { $this->setWidgets(array( 'news_id' => new sfWidgetFormInputHidden(), 'category_id' => new sfWidgetFormPropelSelect(array('model' => 'NewsCategory', 'method' => 'getName', 'order_by' => array('Name', 'asc'))), 'title' => new sfWidgetFormInput() ));
Сортировка по полю “Name” не получиться, т.к. есть баг в коде. Плагин давно не обновляли, но в репозитории есть свежий код, и эта проблема решена, чтобы получить плагин из SVN, выполните следующую команду:
svn co http://svn.symfony-project.com/plugins/sfPropelPlugin/branches/1.3/ .
Учтите все это делаете на свой страх и риск, т.к. это не релиз.
Кстати, если не переназначить опцию “method” своим методом, то по умолчанию будет использоваться метод __toString, которого нет в сгенерированных формах. В этом случае получим на экран сообщение об ошибке
Class "NewsCategory" must implement a "__toString" method to be rendered in a "sfWidgetFormPropelSelect" widget
Альтернативным решением будет добавление метода __toString в NewsCategory.php
function __toString() { return $this->getName(); }