Php 在Zend模型中使用$this
我正试图在我的Zend模型中编写Php 在Zend模型中使用$this,php,zend-framework,Php,Zend Framework,我正试图在我的Zend模型中编写getFunction() 仅适用于: public function getFunction($id){ $Wiadomosc = new Application_Model_DbTable_Wiadomosc(); $nieodczytane = $Wiadomosc->select(); $nieodczytane->from(etc.....) } 但我不想在模型中创建对象模型 我想这样做: public functi
getFunction()
仅适用于:
public function getFunction($id){
$Wiadomosc = new Application_Model_DbTable_Wiadomosc();
$nieodczytane = $Wiadomosc->select();
$nieodczytane->from(etc.....)
}
但我不想在模型中创建对象模型
我想这样做:
public function getFunction($id){
$nieodczytane = $this->select();
$nieodczytane->from(etc.....)
}
但是……方法“select”不存在,并且未被困在调用()中。
如何操作?据我所知,select()函数已经在Zend模型结构中定义,您的模型继承自Zend模型结构,因此如下所示:
public function getFunction($id){
$nieodczytane = parent::select();
$nieodczytane->from(etc.....)
}
虽然你的问题写得很好,不容易理解你想通过这个达到什么目的。让我试着回答。 如果您使用的是Zend数据库表。让我试着解释一下它是如何工作的 例如,您有以下模型 //此类表示数据库方案中的表'Wiadomosc' Wiadomosc类{
protected $_name = 'Wiadomosc';
protected $_primary = 'id';
}
如果您想编写一个关于模型的get函数,通常您可以通过id进行查询,然后
取你想要的那一排,
您可以按照Zend框架的方式进行操作
/*** Get list.
* @param Integer $id
* @return Array
* @throws Exception if id could not be found.
*/
public function getFunction($id)
{
$id = (int)$id; //typcast
$row = $this->fetchRow('id = ' .$id);
if(!$row)
{
throw new Exception("Could not find $id");
}
return $row->toArray();
}
如果情况并非如此,并且您可以从另一个模式进行查询,那么您可以尝试以下方法
public function getFunction($id)
{
$select = $this->select();
$select->from(array('w' => 'Wiadomosc'), array('column1','column2', 'column3'));
$select->setIntegrityCheck(false);
if($rows = $this->fetchAll($select)){
return $rows;
}elseif (empty($rows)){
$rows = $this->_name->select();
return $rows;
}
}
编辑:
您可以执行以下选项之一:
public function getFunction($id){
$nieodczytane = $this->select();
$nieodczytane->from(array('t' => 'YourTableName'),array('*'));
if($rows = $this->fetchAll($nieodczytane)){
return $rows;
}
}
public function getFunction($id){
$nieodczytane = $this->select();
if($rows = $this->fetchAll($nieodczytane)){
return $rows;
}
}
您在哪里调用这个函数getFunction($id),它是否在Wiadomosc类中。你的问题不清楚。好主意,但是:传递给Zend_Db_Table_Select:的参数1::_construct()必须是Zend_Db_Table_Abstract的实例,SprzedawcaController的实例。我正在尝试使函数使用相同的模型,所以情况1。但是当我使用$this->select()方法时,“select”不存在,并且没有被困在_call()中