symfony1 - 如何在管理生成器中将 sfWidgetFormDoctrineChoice 设为 "order by"

标签 symfony1 doctrine symfony-1.4 admin-generator

我正在使用 Symfony 1.4 和 Doctrine。

假设我有 2 个类别:品牌和产品。

当我在基于管理生成器的管理中创建新产品时,我想从下拉列表中选择一个品牌。 管理生成器正在为我做这件事,自动创建一个 sfWidgetFormDoctrineChoice

问题是品牌是按 id 排序的。我希望它们按“标签”字段排序。

为了做到这一点,我在我的 ProductForm 类中执行了以下操作:

$this->widgetSchema['brand_id']->addOption('order_by','label');

但我收到以下错误:

Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a' at line 1. Failing Query: "SELECT b.id AS b__id, b.external_id AS b__external_id, b.label AS b__label, b.created_at AS b__created_at, b.updated_at AS b__updated_at FROM brand b ORDER BY l a"

order by 语句真的很奇怪。我不明白为什么它似乎削减了 order by 语句的名称。

编辑:显然“order_by”选项需要一个数组作为第二个参数。它期望什么值?

最佳答案

我没有尝试本伦利的解决方案,因为当我找到我的解决方案时他回答正确。这似乎比我最后做的事情更乏味。

我查看了源代码以了解这一切是如何工作的。 事实证明,“order_by”选项需要一个数组来指定要对结果进行排序的字段以及“asc”或“desc”:

$this->widgetSchema['product_id']->addOption('order_by',array('label','asc'));

它就像一个魅力。

关于symfony1 - 如何在管理生成器中将 sfWidgetFormDoctrineChoice 设为 "order by",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2280689/

相关文章:

php - 如何在 Propel 中使用 MySQL 函数

symfony - 注释@OrderBy

mysql - 迁移异常: alter table --> Column already exists: 1060 Duplicate column name

php - Symfony 1.4 插入 : Accessing Table Data via Foreign Key

php - 有没有办法覆盖 cap deploy :setup task?

symfony1 - symfony 1.4.8 调试工具栏中的数据库图标在哪里?

php - symfony 1.49 和 MySQL 5.5.8 问题

php - Doctrine findBy 或语句

php - 从子查询进行查询

javascript - 自定义 symfony view.yml 文件