Symfony1 如何";“订购”;管理生成器中的sfWidgetFormDoctrineChoice
我正在使用Symfony 1.4和Doctrine 假设我有两类:品牌和产品 当我在基于管理的管理生成器中创建新产品时,我想从下拉列表中选择一个品牌。 管理员生成器正在为我这样做,自动创建一个Symfony1 如何";“订购”;管理生成器中的sfWidgetFormDoctrineChoice,symfony1,doctrine,symfony-1.4,admin-generator,Symfony1,Doctrine,Symfony 1.4,Admin Generator,我正在使用Symfony 1.4和Doctrine 假设我有两类:品牌和产品 当我在基于管理的管理生成器中创建新产品时,我想从下拉列表中选择一个品牌。 管理员生成器正在为我这样做,自动创建一个sfWidgetFormDoctrineChoice 问题是这些品牌是按id订购的。我希望它们是按“标签”字段订购的 为了做到这一点,我在ProductForm课程中做了以下操作: $this->widgetSchema['brand_id']->addOption('order_by','la
sfWidgetFormDoctrineChoice
问题是这些品牌是按id订购的。我希望它们是按“标签”字段订购的
为了做到这一点,我在ProductForm
课程中做了以下操作:
$this->widgetSchema['brand_id']->addOption('order_by','label');
但我得到了以下错误:
语法错误或访问冲突:1064
您的SQL语法有错误;
检查相应的手册
您的MySQL服务器版本
在第行“a”附近使用的正确语法
1.查询失败:“选择b.id作为b\u id,选择b.external\u id作为
b__外部id,b.标签为b__标签,
b、 在创建时与在创建时相同,
b、 更新时间为b更新时间为
品牌b由l a订购”
order by语句真的很奇怪。我不明白为什么它似乎要删掉order by语句的名称
Edit:显然,“order\u by”选项需要一个数组作为第二个参数。它期望什么值?您应该在这里查看: 它基于旧版本的symfony,所以怀疑它链接的插件不能工作。但我认为该方法仍然是合理的-关键是您必须将方法添加到操作中,以拦截并修改按此特定字段排序的默认处理: 对于条令,需要定义/覆盖addSortQuery,对于推进,需要定义/覆盖addSortCriteria
建议您查看缓存文件夹,看看自动生成的类是什么样子,以了解其工作原理。我没有尝试benlumley的解决方案,因为我找到我的解决方案时他答对了。这似乎比我最后做的更乏味 我查看了源代码,以了解所有这些是如何工作的。 “order_by”选项需要一个数组,指定要对结果进行排序的字段以及“asc”或“desc”:
$this->widgetSchema['product_id']->addOption('order_by',array('label','asc'));
它很有魅力。我完全误解了你的问题!我的任务是按外部表上的字段对管理生成器上的列表页面进行排序,这根本不是您想要的!