Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
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
Zend_Loader::loadClass('Fournisseur'); $facade = Fournisseur::getInstance(); $facade->ajouter($email,$nom,$adr,$telph1,$telph2,$telport,$fax,$niv);
dans ma vue
<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
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
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
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
salut
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
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
Si tu veux alléger au maximum, essaie d'utiliser les procédures stockées.
Hors ligne
pardon mais je sais pas qu'est ce que les procédure stockées???
comment faire???
Hors ligne
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
Hors ligne
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
salut philippe
j'inclus le fichier DB.php
include_once "Zend/Db.php";
dans mon model
Hors ligne
salut ziedb j'utilise Mysql pour mabase
Hors ligne
tu peux aller voir ici http://sekaijin.ovh.org/?m=200711 et là http://sekaijin.ovh.org/?p=15
A+JYT
Hors ligne
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
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
function gestionfournisseurAction() { $this->view->title = "Chercher un fournisseur"; $fournisseurs=new Fournisseur(); $this->view->data = $fournisseurs->recherchefamille();
merci pour votre aide
Hors ligne
Pages: 1