Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-04-2008 11:45:16

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

[resolu]Erreur lors de l'utilisation des models

bonjour ,

je viens d'utiliser les model dans mon application

j'ai trouver ce tutohttp://www.kitpages.fr/zf_tutorial.html


j'ai édité mon  code comme ceci

dans le model

Code:

protected $_name = 'fournisseur';
    
    
 
     static private $_instance = null;
    public function __construct() {
    }
    static public function getInstance() {
        if (!self::$_instance instanceof self) {
           self::$_instance = new self();
        }
        return self::$_instance;
    }
    // connexion management
    ////
    private $db = null;
    public function getZendDb() {
        if ($this->db == null) {
            $params = array(
                'host'     => 'localhost' ,
                'username' => 'root' ,
                'password' => '' ,
                'dbname'   => 'consultation',
            );
            $this->db = Zend_Db::factory(DB_TYPE,$params);
        }
        return $this->db;
    }
    
    
     public function ajouter($email,$nom,$adr,$telph1,$telph2,$telport,$fax,$niv) {
        $db = $this->getZendDb();
        $valueArray = array(
                        'nom_four' => $nom,
                        'tel_four_1' => $telph1,
                        'tel_four_2'  => $telph2,
                        'tel_four_port' => $telport,
                        'fax_four'  => $fax,
                        'adr_four'  => $adr,
                        'niveau'  => $niv,
                    );
        $rows_affected = $db->insert("fournisseur", $valueArray);
        return $db->lastInsertId();
    }

dans mon controlleur

Code:

Zend_Loader::loadClass('Fournisseur');
            $facade = Fournisseur::getInstance();
            $facade->ajouter($email,$nom,$adr,$telph1,$telph2,$telport,$fax,$niv);

dans ma vue

Code:

<tr><td>Numero</td><td><input type="text" class="txt" disabled="disabled" value=""/> </td></tr>
   <tr><td class="detailfour1">Fournisseur</td><td class="detailfour1"> <input type="text"  class="txt"name="four"   value=""/></td></tr>
        
        <tr><td > telephone1 : </td><td> <input type="text" class="txt" name='telph1' value="" /></td></tr>
       
     <tr><td class="detailfour1"> telephone2 :  </td><td  class="detailfour1"><input type="text"  class="txt"name='telph2' value="" /></td></tr>
      
      
      <tr><td > telephone portable :  </td><td ><input type="text"  class="txt" name='telport' value="" /></td></tr>
      
      
      <tr><td class="detailfour1"> Adresse :  </td><td  class="detailfour1"><input class="txt" name="adr" type="text" value="" /></td></tr>
      
      <tr><td > Fax :  </td><td ><input type="text" class="txt" name='fax' value="" /></td></tr>
      <tr><td class="detailfour1"> Niveau:  </td><td  class="detailfour1"><input  class="txt" type="text" name='niveau' value="" /></td></tr>
 

<tr><td >

<input type="submit" name="add" 
    value="<?php echo $this->escape($this->buttonText); ?>" />
    <a class="cadre" href="<?php echo $this->baseUrl; ?>/index/"><img name=""  src="<?php echo $this->baseUrl; ?>/public/images/32px-Crystal_Clear_action_reload.png" width="32" height="32" alt="" /></a></tr></td></tr></td>
</div>
</table>

cette warning s'affiche

Code:

Warning: array_fill() [function.array-fill]: Number of elements must be positive in D:\wamp\www\consultation2\applicationcss\library\Zend\Db\Table\Abstract.php on line 1117

Warning: array_combine() expects parameter 1 to be array, null given in D:\wamp\www\consultation2\applicationcss\library\Zend\Db\Table\Abstract.php on line 1117

et si j'exécute l'ajout cette erreur s'affiche

Code:

Notice: Undefined offset: 1 in D:\wamp\www\consultation2\applicationcss\library\Zend\Db\Table\Abstract.php on line 791

Fatal error: Call to a member function insert() on a non-object in D:\wamp\www\consultation2\applicationcss\library\Zend\Db\Table\Abstract.php on line 815

c'est ma première fois sue j'utilise les model avez vous une idee?? merci

Dernière modification par yosra (11-04-2008 09:46:57)

Hors ligne

 

#2 08-04-2008 11:59:03

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [resolu]Erreur lors de l'utilisation des models

Je te conseille vivement de commencer par ce tutoriel, il est vraimment simple et clair et tu peux téléchager le code complet sur le site d'origine de ROB ALLEN
http://g-rossolini.developpez.com/tutor … k/debuter/
Le tutoriel que tu utilises est un peu plus compliqué.

Bon travail

Hors ligne

 

#3 08-04-2008 12:11:29

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: [resolu]Erreur lors de l'utilisation des models

salut smile

j'ai fais ce tuto si tu examine les model tu trouve qu'il s'arrête à la définition de sa table dans la base et c'est tous ce model

Code:

class Fournisseur extends Zend_Db_Table_Abstract
{
    protected $_name = 'fournisseur';
    }

moi je vais créer  une application complexe de gestion des demande d'achat et si je suis ce tuto mon controller devient géant d'ailleurs je suis dans la première itération . donc je cherche à utiliser les models pour qu'elles prend le charge de tous ce qui est base de donnée mais je ne sais pas encore les utiliser:(

Hors ligne

 

#4 08-04-2008 12:44:51

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [resolu]Erreur lors de l'utilisation des models

Si tu veux alléger au maximum, essaie d'utiliser les procédures stockées.

Hors ligne

 

#5 08-04-2008 13:00:32

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: [resolu]Erreur lors de l'utilisation des models

pardon  mais je sais pas qu'est ce que les procédure stockées???
comment faire???

Hors ligne

 

#6 08-04-2008 13:39:25

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [resolu]Erreur lors de l'utilisation des models

Bonjour yosra,

Pour revenir à ton premier message, je ne comprends pas bien comment tu peux avoir un warning sur le fichier Zend\Db\Table\Abstract.php alors que tu ne l'utilises pas dans le bout de code que tu nous as envoyé.

A mon avis, fouille dans le reste de ton code, tu dois faire des appels à Zend_Db_Table quelque part ailleurs et ce sont eux qui posent problème.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#7 08-04-2008 14:14:33

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [resolu]Erreur lors de l'utilisation des models

yosra a écrit:

pardon  mais je sais pas qu'est ce que les procédure stockées???
comment faire???

Tu utilise quoi comme BD?
mySQL?

Hors ligne

 

#8 08-04-2008 14:27:43

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: [resolu]Erreur lors de l'utilisation des models

salut philippe

j'inclus le fichier DB.php

Code:

include_once "Zend/Db.php";

dans mon model

Hors ligne

 

#9 08-04-2008 14:28:59

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: [resolu]Erreur lors de l'utilisation des models

salut ziedb j'utilise Mysql pour mabase

Hors ligne

 

#10 09-04-2008 08:06:00

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [resolu]Erreur lors de l'utilisation des models

Hors ligne

 

#11 11-04-2008 09:43:36

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: [resolu]Erreur lors de l'utilisation des models

bonjour ,


merci sekaijin pour les lien , j'ai corrigé le problème et maintenant je sais  un peu comment créer mon modèle
merci bcp voici un petei code de creation d'une liste des fourniseur

dans le modele

Code:

 public function __construct() {
    
     
         $this->db=Zend_Registry::get('dbAdapter');
    }
    
    
     static public function getInstance() {
        if (!self::$_instance instanceof self) {
           self::$_instance = new self();
        }
        return self::$_instance;
    }
    
public function fournisseurs() {

        $req="SELECT * FROM fournisseur";
        
        return $this->db->fetchAll($req);
    }

dans le controller

Code:

 function gestionfournisseurAction()
   {                                  $this->view->title = "Chercher un fournisseur";
                       $fournisseurs=new Fournisseur();
                    $this->view->data = $fournisseurs->recherchefamille();

merci pour votre aide

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages