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 且 lista_id 等于 1 的记录。

这是 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 回答