Php 在Zend Framework中连接表引发应用程序错误
在将Zend Framework库升级到1.12之后,我遇到了这个问题。它在1.11版本中运行良好 问题是,当我连接两个表时,出现了以下错误: 应用程序错误 异常信息:Php 在Zend Framework中连接表引发应用程序错误,php,zend-framework,jointable,Php,Zend Framework,Jointable,在将Zend Framework库升级到1.12之后,我遇到了这个问题。它在1.11版本中运行良好 问题是,当我连接两个表时,出现了以下错误: 应用程序错误 异常信息: class Model_Member extends Zend_Db_Table_Abstract { public function getAll($params = array()) { $select = $this->select(); $select->set
class Model_Member extends Zend_Db_Table_Abstract
{
public function getAll($params = array())
{
$select = $this->select();
$select->setIntegrityCheck(false);
$select->from("members", array('name', 'family_id'));
$select->join('family', 'family.id = members.family_id', array('family_type'));
$paginator = Zend_Paginator::factory($select);
$paginator->setItemCountPerPage(20);
$paginator->setCurrentPageNumber(1);
$paginator->setPageRange(10);
return $paginator;
}
}
消息:指定的表与行的列不相同
此错误由Zend/Db/Table/Row/Abstract.php(第356行)生成
我的表格结构
Members:
id (int)
name (varchar)
age (int)
family_id (varchar)
Family:
id (int)
family_type (varchar)
foreach($this->paginator as $row)
{
}
我的型号:
class Model_Member extends Zend_Db_Table_Abstract
{
public function getAll($params = array())
{
$select = $this->select();
$select->setIntegrityCheck(false);
$select->from("members", array('name', 'family_id'));
$select->join('family', 'family.id = members.family_id', array('family_type'));
$paginator = Zend_Paginator::factory($select);
$paginator->setItemCountPerPage(20);
$paginator->setCurrentPageNumber(1);
$paginator->setPageRange(10);
return $paginator;
}
}
然后在我的视图文件中
Members:
id (int)
name (varchar)
age (int)
family_id (varchar)
Family:
id (int)
family_type (varchar)
foreach($this->paginator as $row)
{
}
在您的模型中尝试以下操作:
class Model_Member extends Zend_Db_Table_Abstract
{
public function getAll($params = array(), $paged = 1)
{
$select = $this->select();
$select->setIntegrityCheck(false);
$select->from("members", array('name', 'family_id'));
$select->join('family', 'family.id = members.family_id', array('family_type'));
$adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
$paginator = new Zend_Paginator($adapter);
$paginator->setItemCountPerPage(5)
->setCurrentPageNumber((int) $paged);
return $paginator;
}
}
和视图:
<?php if($this->data instanceof Zend_Paginator): ?>
<?php echo $this->paginationControl($this->data,
'Sliding',
'pathToController/_paginator.phtml', array('params'=>$params);?>// if you want pass some params.
它仍然不起作用。我仍然得到同样的错误。您是否尝试过使用zend framework v1.12连接两个表,然后从连接的表中选择几列?你的意思是说这适用于v1.12吗