Coucou,

J'essaie de créer un modèle pour mon application ZF. J'obtiens une erreur lors de la création d'une requête de type select.

`Fatal error: Call to a member function select() on a non-object in [...]/models/TrackingPageMapper.php on line 86`

Je suis un nouvel utilisateur dans ZF.

Voici mon morceau de code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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);
	}
    }
Et j'appelle mon modèle dans mon controller de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 $oTrack = new Default_Model_TrackingPageMapper;
    $oTrack->addView($Id);
le var_dump de mon objet DB donne ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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)
       }
Quelqu'un peut m'aider ?
Merci pour vos aides à venir,