我有一个以这种方式定义的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();
}
结果是错误:
可能导致这种情况的原因是什么?
答案 0 :(得分: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是连接中引用的内容,而不是模型的名称。