Zend framework Zend Framework-在非对象上选择() 编辑11月23日:解决方案已建立。。。我在构造函数中写了$\u db而不是$this->\u db!真是个笨蛋!
我尝试在我的ZF应用程序中创建一个新模型。 我得到一个错误:Zend framework Zend Framework-在非对象上选择() 编辑11月23日:解决方案已建立。。。我在构造函数中写了$\u db而不是$this->\u db!真是个笨蛋!,zend-framework,zend-db-table,Zend Framework,Zend Db Table,我尝试在我的ZF应用程序中创建一个新模型。 我得到一个错误: 致命错误:在第86行的[…]/models/TrackingPageMapper.php中对非对象调用成员函数select() 我是ZF的新用户,我想我什么都忘了 这是我的班级代码: /** * TrackingPageMapper * @author Raphaël Deschler - developpeur@la-ligne-web.com * @version 0.1 */ class Default_Model_T
致命错误:在第86行的[…]/models/TrackingPageMapper.php中对非对象调用成员函数select()
我是ZF的新用户,我想我什么都忘了
这是我的班级代码:
/**
* TrackingPageMapper
* @author Raphaël Deschler - developpeur@la-ligne-web.com
* @version 0.1
*/
class Default_Model_TrackingPageMapper
{
private $_db;
/**
* __construct
*/
public function __construct()
{
$_db = Zend_Db_Table::getDefaultAdapter();
}
#-----[Public Section]
/**
* addView()
* @param EtId, etablissement id
*
* Check :
* 1) If this is the first click of the day for this IP on this page
* 2) If this is the first click of the month for this IP
* 3) Save or not
*
* @return void
*
*/
public function addView($EtId)
{
$today = getDate();
$ip = $this->getRealIp();
//Check If is the IP exists
$this->ipExists($ip, $EtId);
//print_r($today);
}
#-----[Private Section]
/**
* getRealIp()
* @return varchar(15)
*
*/
private function getRealIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
/**
* ipExists()
* @param Ip address
* @param EtId, etablissement id
*
* @return false if ip !exists
* @return array of ip infos if exists
*
*/
public function ipExists($Ip, $EtId = null)
{
$myQuery = $this->_db->select()
->from('tracking_ip', 'idtracking_ip')
->where('ip = ?',$Ip);
$result = $this->_db->fetchAll($myQuery);
print_r($result);
}
}
我这样称呼这个模型:
$oTrack = new Default_Model_TrackingPageMapper;
$oTrack->addView($Id);
有人能帮我吗
谢谢你对康明的支持
编辑
var\u dump($\u db)代码>
找到解决方案。。。我在构造函数中编写了$\u db
而不是$this->\u db
,我不明白为什么构造函数不应该是公共的。这并不能解决问题。无论如何,谢谢你做一个var\u转储($this->\u db);在您使用之前,请选择并查看您得到了什么。已经执行了_db工作。我编辑我的答案,写下你解决的问题。无论如何,将您的编辑作为答案并接受它;)
object(Zend_Db_Adapter_Pdo_Mysql)#76 (12) {
["_pdoType":protected]=>
string(5) "mysql"
["_numericDataTypes":protected]=>
array(16) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
["INT"]=>
int(0)
["INTEGER"]=>
int(0)
["MEDIUMINT"]=>
int(0)
["SMALLINT"]=>
int(0)
["TINYINT"]=>
int(0)
["BIGINT"]=>
int(1)
["SERIAL"]=>
int(1)
["DEC"]=>
int(2)
["DECIMAL"]=>
int(2)
["DOUBLE"]=>
int(2)
["DOUBLE PRECISION"]=>
int(2)
["FIXED"]=>
int(2)
["FLOAT"]=>
int(2)
}
["_defaultStmtClass":protected]=>
string(21) "Zend_Db_Statement_Pdo"
["_config":protected]=>
array(7) {
["username"]=>
string(4) "riad"
["password"]=>
string(7) "xxxxxx"
["dbname"]=>
string(8) "riad_dev"
["charset"]=>
string(4) "utf8"
["driver_options"]=>
array(1) {
[1002]=>
string(14) "SET NAMES utf8"
}
["persistent"]=>
bool(false)
["options"]=>
array(3) {
["caseFolding"]=>
int(0)
["autoQuoteIdentifiers"]=>
bool(true)
["fetchMode"]=>
int(2)
}
}
["_fetchMode":protected]=>
int(2)
["_profiler":protected]=>
object(Zend_Db_Profiler)#74 (4) {
["_queryProfiles":protected]=>
array(0) {
}
["_enabled":protected]=>
bool(false)
["_filterElapsedSecs":protected]=>
NULL
["_filterTypes":protected]=>
NULL
}
["_defaultProfilerClass":protected]=>
string(16) "Zend_Db_Profiler"
["_connection":protected]=>
NULL
["_caseFolding":protected]=>
int(0)
["_autoQuoteIdentifiers":protected]=>
bool(true)
["_allowSerialization":protected]=>
bool(true)
["_autoReconnectOnUnserialize":protected]=>
bool(false)
}