0

私は Symfony 1.3.11 で sfPropel15Plugin を使用していましたが、すべてうまく機能していました。

Propel 1.6 を使用する sfPropelORMPlugin にプラグインをアップグレードすることにしました。プラグインをインストールする通常の手順を実行しました。ほとんどの場合、アプリを元に戻して動作させることができました。ただし、以前使用していた特定のフォーム フィルター条件が壊れており、有効な SQL を生成していないことがわかりました。

1.5 では機能するが、1.6 では機能しない例を次に示します。

// select only users who are sales reps on an existing quote
$c = new Criteria();
$c->addJoin(sfGuardUserPeer::ID, sfGuardUserProfilePeer::USER_ID);
$c->addJoin(QuotePeer::SALESREP, sfGuardUserPeer::ID);
$c->addGroupByColumn(sfGuardUserPeer::ID);
$c->addAscendingOrderByColumn(sfGuardUserProfilePeer::FIRST_NAME);

$this->widgetSchema['salesrep'] = new sfWidgetFormPropelChoice(array(
  'label'     => 'Sales rep',
  'add_empty' => true,
  'order_by'  => array('Username', 'asc'),
  'model'     => 'sfGuardUser',
  'method'    => 'getFullName',
  'criteria'  =>  $c,
  'key_method'=> 'getId',
  'multiple'  => false
));

次の無効な MySQL が生成されます。

SELECT sf_guard_user.ID, sf_guard_user.USERNAME, sf_guard_user.ALGORITHM, sf_guard_user.SALT, sf_guard_user.PASSWORD, sf_guard_user.CREATED_AT, sf_guard_user.LAST_LOGIN, sf_guard_user.IS_ACTIVE, sf_guard_user.IS_SUPER_ADMIN, sf_guard_user.VANTIVE_ID FROM LEFT JOIN `sf_guard_user` ON (quote.SALES_ENGINEER=sf_guard_user.ID)

ほとんどの場合、これがバグなのか、小さな変更で修正できるのか、1.5 に戻す必要があるのか​​を判断したいと考えています。

4

0 に答える 0