我正在使用sfPropel15Plugin与Symfony 1.3.11,一切都运行良好。
我决定将插件升级到使用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。