Posts Tagged ‘propel’

Symfony Performance optimieren: sfWidgetFormPropelChoice

Posted in Symfony Framework on December 15th, 2009 by admin – Be the first to comment

Wenn man in Symfony ein Formular erstellt und sich darin viele Auswahlfelder zu anderen Tabellen befinden steigen entsprechend auch durch das Widget sfWidgetFormPropelChoice die Datenbankabfragen. Sind die verknüpften Tabellen jetzt noch mehrsprachenfähig erhöht sich die Abfragen um die Anzahl der Einträge, da für jede Übersetzung eine Abfrage erfolgt. Natürlich ist das vollkommener Quatsch und bietet daher eine einfache Möglichkeit die Abfragen einer Aktion zu reduzieren.

Dazu ändert man die Peer-Method des entsprechenden sfWidgetFormPropelChoice-Widgets:
Standardmäßig wird doSelect verwendet, wenn man dies auf doSelectWithI18n, werden die Übersetzungen in einer Abfrage aus der Datenbank ermittelt.

$w = new sfWidgetFormPropelChoice(array(
  'model'     => 'ModelClass',
  'add_empty' => false,
  'peer_method' => 'doSelectWithI18n',
));