我正在研究一个symfony项目,我需要查询多对多关系,所以我使用这个基于标准的函数来查询数据库:
//Create Criteria Object
$c1 = new Criteria();
//Selecting the rows in the link table that matches the Table1 id (parameter)
$c1->add(LinktablePeer::TBL1_CODIGO,$parameter,Criteria::EQUAL);
//Selecting the rows in Table2 that matched with the last query
$c1->addJoin(LinktablePeer::TBL2_CODIGO,Table2Peer::TBL2_CODIGO);
$list = LinktablePeer::doSelect($c1);
但是它让我想起了这个奇怪的错误
[wrapped:SQLSTATE [42S22]:找不到列:1054未知列 '字段列表'中的'link_table.ID']
很奇怪,因为我在该表中没有名为ID的列。为什么会这样?我该如何解决?
是否有php symfony propel:build-model
命令的选项阻止为那些没有主键的表生成“ID”列?
谢谢你的时间;)
答案 0 :(得分:1)
我发现问题是 dump命令任务试图导出我的mysql数据库中的视图。
当我专门定义我想用-classes="..."
导出的表时,错误就消失了。
例如:
symfony propel:data-dump --classes="{table},{tablew},..." fixtures.yml