Проблема при использовании sfWidgetFormPropelSelect от плагина sfPropelPlugin

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();
}

Источник: Журнал веб разработчика: Проблема при использовании sfWidgetFormPropelSelect от плагина sfPropelPlugin

Теги: ,

Вы можете оставить комментарий или подписаться на RSS feed

Коментарии

Нет коментариев.

Leave a comment

(обязательно)

(обязательно)