Symfony2 アプリケーション内に Doctrine ORM 用のユーザー定義関数を作成しましたisnull_string()
。これは、文字列フィールドで昇順で並べ替えるときに、null レコードを上部ではなく下部に配置するクエリを実行できるようにするためです。MySQLでは、次のようになりますSELECT * FROM airlines ORDER BY ISNULL(name), name;
関数はconfig.yml
、Symfony2 のドキュメントで説明されているように、グローバル ファイルに登録されます。しかし、QueryBuilder オブジェクトの作成内でこの関数を使用する方法に関するリソースはどこにもありません。
ドロップダウンメニューを作成するために私がやっていることは次のとおりです。
$builder->add('airline', 'entity', array('query_builder'
=> function(EntityRepository $er){
return $er->createQueryBuilder('airline')->orderBy('isnull_string(airline.name), airline.name', 'ASC');
});
しかし、それは構文エラーを返しています:Expected end of string, got '('
では、FormBuilderInterface 内でこのカスタム関数を使用するにはどうすればよいでしょうか?