cakePHP find ("list") returnne un tableau vide

J'essaie de faire une list déroulante des users en utilisant la key étrangère [UserID]. Dans le controller, j'ai trouvé ("list"). Lorsque je débogue $this->Order->SalesAgent dans le controller, il imprime l'object user. Cependant, dans la page d'affichage, lorsque je débogue le résultat de $this->Order->SalesAgent->find("list") , affiche et tableau vide.

Heres le controller:

  public function edit_sales_agent ($id=null) { debug($this->Order->SalesAgent); $this->set("users",$this->Order->SalesAgent->find("list")); debug($this->users); } 

et voici la vue:

 debug($users); echo $this->Form->create("Order"); echo $this->Form->input("UserID"); 

$users est le résultat de find("list")

Quelqu'un pourrait m'aider? Merci!

Association:

 class Order extends AppModel{ public $useTable = 'CustomerOrder'; public $primaryKey = 'OrderID'; **public $belongsTo = array( "SalesAgent"=>array( "className"=>"User", "foreignKey"=>"UserID"** ), 

Modèle d'agent de vente:

 <?php class User extends AppModel{ public $useTable = 'UserAccount'; public $primaryKey = 'UserID'; public $order = array( "User.LastName"=>"asc", "User.FirstName"=>"asc" ); public function __construct($id = false, $table = null, $ds = null) { parent::__construct($id, $table, $ds); $this->virtualFields['full_name'] = sprintf("(%s.FirstName+' '+%s.LastName)", $this->alias, $this->alias); } public function login($data){ return $this->find("first",array("conditions"=>$data['User'])); } } 

METTRE À JOUR:

D'accord, j'ai donc compris quel est le problème mais je ne sais pas comment le réparer. Lorsque je tape find (list), voici la requête qu'il exécute:

SELECT [SalesAgent]. [ID user] AS [SalesAgent__0], [SalesAgent]. [ID user] AS [SalesAgent__1] FROM [Compte user] AS [SalesAgent] WHERE 1 = 1 ORDER BY [user]. [LastName] asc, [user] . [Prénom] asc

C'est l'erreur qu'elle propose:

Erreur SQL: Le préfixe de colonne 'Utilisateur' ne correspond pas à un nom de table ou un nom d'alias utilisé dans la requête. [APP / Model / Datasource / Mssql.php, ligne 749]

SalesAgent utilise la class User, qui utilise la table UserAccount

    Je l'ai compris.

    Le problème était que la requête allait s'exécuter:

    SELECT [SalesAgent]. [ID user] AS [SalesAgent__0], [SalesAgent]. [ID user] AS [SalesAgent__1] FROM [Compte user] AS [SalesAgent] WHERE 1 = 1 ORDER BY [user]. [LastName] asc, [user] . [Prénom] asc

    où il serait commandé par [User] .LastName et [User]. [FirstName].

    L'user ne correspond pas au nom de la table OU au nom de l'alias, donc j'ai dû spécifier l'ordre dans le gâteau.

     array( "fields"=>array("SalesAgent.username"), ' "order"=>["SalesAgent.UserID ASC"] ) 

    Essayez d'abord de configurer votre association de model.

    Qu'est-ce qui appartient à quoi et en exécutant ce

     public function edit_sales_agent ($id=null) { $users = $this->Order->SalesAgent->find("list"); $this->set("users",$users); } 

    voir essayer

     echo $this->Form->input("user_id"); 

    Vous devriez avoir la list des users.