0

私の Symfony2 アプリケーションには、'Appointment' というエンティティがあります。このエンティティには、「日付」というフィールド/プロパティがあります。「2012-12-24」のような形式です。

プロパティに基づいて予定を検索できるように、AppointmentType というフォームを作成しました。フォームは AppointmentController で使用され、appoint.html.twig にレンダリングされます。

ここまでは順調ですね。すべてのフィールドに基づいて予定を検索できます。たとえば、特定の日付 (つまり、完全一致) で検索できます。

ただし、日付範囲を指定して (開始日と終了日を使用して) 予定を検索できるようにしたいと考えています。質問は、「この日付とその日付の間のすべての予定を教えてください」です。私は多くのことを試しましたが、Symfony2 では理解できません。

ここにいくつかのランダムな考えがあります:

  • 「日付」の横に予定エンティティに 2 つの追加フィールドを作成し、それらを「開始日」と「終了日」と呼び、それらを MySql テーブルにリンクするのではなく、検索にのみ使用する必要がありますか?
  • エンティティの同じ日付プロパティにリンクされた 2 つの日付フィールドを作成して、フォームで何かを行う必要がありますか (違反が発生するようです)。
  • これには Symfony2 フォームを使用するべきではありませんが、昔ながらの方法 (手動でフォームを作成して処理する) を使用する必要がありますか? これは現時点では機能しますが、Symfony2 環境ではエレガントとは言えません。

どんな助けでも大歓迎です。特に (完全な) 動作するコード例は素晴らしいので、勉強できます。

4

1 に答える 1

0
public function getAppointmentsByDate($startDate, $endDate)
{
   $query = $em->createQuery('SELECT a FROM Appointment a WHERE a.date BETWEEN ?1 AND ?2');
   $query->setParameter(1, $startDate);
   $query->setParameter(2, $endDate);
   return $query->getResult();
}
于 2012-05-18T10:11:37.330 に答える