私のエンティティでは、ロールとユーザーの間に多対多の関係があります
/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="roles")
*/
protected $users;
エンティティの編集フォームで、Role
そのロールを持つユーザーを表示し、ユーザーも追加および削除できるようにしたいので、users
フィールドを追加しましたconfigureFormFields
protected function configureFormFields(FormMapper $formMapper) {
$formMapper
->add('name')
->add('description')
->add('users');
}
問題は、Sonata のアプローチが非常に単純なことです。このフォームをレンダリングするには、1 つのクエリを実行してロールのフィールドを取得し、1 つをこのロールを持つユーザーのフィールドを取得し、もう 1 つを実行してすべてのユーザーのフィールドを取得します。データベース!!!
データベースに 20,000 人を超えるユーザーがいるため、これは250MB を超えるメモリを使用します。
検索などでページ分割されたリストを表示するようにソナタに指示する方法はありますか?