Bonjour,

je débute dans le système MVC et également dans zend framework

j'ai une petite application php avec une db, dans cette db j'ai deux tables
une table appelé ami et l'autre commande

j'ai déjà réussi à faire des requêtes qui affichait simplement les enregistrement de la table ami, et également à affiner avec des clauses where

ce que je voudrai faire maintenant, c'est réaliser une jointure des deux tables pour afficher les amis qui ont des commandes dans la table commande. Mais là je suis perdu

voici mon code :

page IndexController.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
	public function clientAction()
	{
		$this->view->title = "Liste des amis ayant des commandes en cours";
		$amis = new Ami();
		$commande = new Commande();
		$select = $amis->select('nom')
		->from('ami')
		->join('commande','commande.idAmi = ami.id');
		$this->view->clients = $amis->fetchAll($select);
 
 
 
	}
la page client.phtml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<?php foreach($this->clients as $client) :?>
	<p><?php echo $client->nom;?></p>
<?php endforeach;?>
la page models/Ami.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?php
 
class Ami extends Zend_Db_Table
{
    protected $_name = 'ami';
    protected $_primary	= 'id';
}
?>
la page models/Commande.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?php
 
class Commande extends Zend_Db_Table
{
    protected $_name = 'commande';
    protected $_primary	= 'id';
}
?>



et pour finir la page index.php

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
 
<?php
 
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
date_default_timezone_set('Europe/Paris');
 
// mise en place des répertoires et chargement des classes
set_include_path('.'
    . PATH_SEPARATOR . './library'
    . PATH_SEPARATOR . './application/models/'
    . PATH_SEPARATOR . get_include_path());
 
 
include "Zend/Loader.php";
 
 
Zend_Loader::registerAutoload();
//on définit un nouvel objet de configuration
$oConfig = new Zend_Config_Ini('./application/config.ini', 'connexion');
// Mise en place de la BDD
$oDb = Zend_Db::factory($oConfig->db);
// on définit notre objet de base de données par défaut
Zend_Db_Table::setDefaultAdapter($oDb);
 
 
// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('./application/controllers');
 
// on définit le chemin des layouts
$aOptions = array(
    'layout'     => 'home',
    'layoutPath' => './application/layouts'
);
Zend_Layout::startMvc($aOptions);
 
// run!
$frontController->dispatch();
?>

pour l'instant je teste en tapant simplement l'url monsite/index/client
mais j'ai un message d'erreur

Fatal error: Uncaught exception 'Zend_Db_Table_Select_Exception' with message 'Select query cannot join with another table' in C:....