我尝试在ZF应用程序中创建一个新模型。 我收到一个错误:
Fatal error: Call to a member function select() on a non-object in [...]/models/TrackingPageMapper.php on line 86
我是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_dump($_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)
}
答案 0 :(得分:0)
找到解决方案...我在构造函数
中写了$_db
而不是$this->_db