sql >> データベース >  >> RDS >> Mysql

Doctrine2:少なくとも1つのルートエンティティエイリアスを選択せず​​に、識別変数を介してエンティティを選択することはできません

    問題は、結合されたカテゴリエンティティのオブジェクト全体を同時に選択しながら、カテゴリエンティティから1つのフィールドを選択しようとしていることです。プレーンSQLとは異なり、QueryBuilderコンポーネントでは、結合しているテーブルからのみエンティティを選択することはできません。

    結合された子を持つメインのCategoryオブジェクトを返す場合は、->select(array('c', 'cc'))を実行できます。 、または単に->select()を省略します 一緒に電話してください。前者は、1回のクエリで必要な子を自動的に選択します。後者では、メインのカテゴリエンティティの子にアクセスする場合、別のSQLクエリが必要になります。

    nameが必要な理由がある場合 titleとして選択します オブジェクトでは、クエリに名前を書き込む代わりに、名前を取得するためのエイリアスである別の関数をエンティティにいつでも追加できます。

    function getTitle()
    {
        return $this->getName();
    }
    


    1. IN句のSQL複数列

    2. SQL:最初の文字のみを大文字にする

    3. 複合PRIMARYKEYは、関連する列にNOTNULL制約を適用します

    4. MySQLの外部キー?