0

次のように定義されたschema.ymlファイルがあります。

email:
  actAs: { Timestampable: ~ }
  columns:
    id: { type: integer, notnull: true, unique: true, primary: true }
    correo: { type: string(255), notnull: true }
    nombre: { type: string(255), notnull: true }
    apellido: { type: string(255), notnull: true }

lista:
  actAs: { Timestampable: ~ }
  columns:  
    id: { type: integer, notnull: true, unique: true, primary: true }
    nombre: { type: string(255), notnull: true }
    descripcion: { type: string(255), notnull: false }

email_lista:
  actAs: { Timestampable: ~ }
  columns:
    email_id: { type: integer }
    lista_id: { type: integer }
  relations:
    email: { onDelete: CASCADE, local: email_id, foreign: id, foreignAlias: emailrelation }
    lista: { onDelete: CASCADE, local: lista_id, foreign: id, foreignAlias: listarelation }

次に、 lista_idが1に等しいlistaに属していないすべてのレコードを電子メールモデルからフェッチしようとします。

emailTable.phpクラスのメソッドは次のとおりです。

 public function getEmailsNotBlacklist()
    {
   $q = $this->createQuery('c')        
       ->leftJoin('c.email_lista m')
       ->Where('m.lista_id != ?',1);
       ->orderBy('m.lista_id ASC');       

   return $q->execute();
     }

結果はエラーです:

エラー

これを引き起こしているのは何ですか?

4

1 に答える 1

0

エラーが発生しないコードは次のとおりです。

       public function getEmailsNotBlacklist()
       {
    $q = Doctrine_Query::create()        
       ->from('email sr')
       ->innerJoin('sr.emailrelation m' )
       ->Where('m.lista_id <> ?',1);
       //->orderBy('m.lista_id ASC');        

  return $q->execute();
}  

私が間違っていたのは、foreignAlias が結合で参照されるものであり、モデルの名前ではないということでした。

于 2012-11-04T17:19:16.067 に答える