11

私はSymfony2が初めてです。Zend のバックグラウンドから来て、モデルのフォルダーが表示されません。モデルとコントローラーはどのように通信しますか?

Doctrine を使用したくない場合はどうすればよいですか。Doctrine を使用している場合でも、モデルはどこに存在し、どのようにコントローラーと通信できますか?

Symfony の Web サイトには symfony2 に関する優れたドキュメントがいくつかありますが、私が気付いた symfony1.X のドキュメントと同等ではありません。公式のドキュメントには、異なるドクトリン メソッドを使用する場合にどの名前空間を追加する必要があるかが記載されていません。事前にヒントを提供してくださったコミュニティに感謝します。

4

2 に答える 2

17

モデルを手動で作成できます。

モデル:

  • バンドル内に新しいディレクトリを作成します (モデル)
  • MyModel の作成

  • 名前空間の設定 (company\mybundle\models)

  • Doctrine を設定してエンティティを使用する ( use )
  • あなたのモデルにDQLを入れてください

コントローラー:

  • use company\mybundle\models\mymodel;

    public function getRecentUserAction ($max = 10)  
    {
         $user = new MyModel();
         $list = $user->getRecentUser($max) // DQL
        return $this->render('CompanyBundle:controller:index.html.twig',array('list'=>$list));
    }
    
于 2013-09-15T14:45:45.393 に答える
6

Symfony2 は、モデル部分ではなく、コントローラー部分、ビュー部分にツールを提供することを目的としています。モデルを手動で作成するか、ORM などの他のツールを使用するかは、あなた次第です。

-- ファビアン ポテンシエ (情報源)

しかし、モデルなしでデータベースと通信するにはどうすればよいでしょうか?

やり方は自分で選べます。カスタム モデルを作成して使用することも、DataMappers などを使用することもできます。Symfony2 Standard Edition には、Doctrine および Propel ORM が含まれています。デフォルトでは Doctrine が使用されます。

これらの ORM の詳細と、Symfony2 内でそれらを使用する方法については、doctrineまたはpropelを参照してください。

于 2012-11-06T21:47:15.847 に答える