Lors de l'utilisation des modèles ORM de Kohana 3, quel est le meilleur moyen d'obtenir des données à partir de champs de modèles associés? Par exemple, j'ai un employé, qui a une compagnie, et a beaucoup de devoirs. Comment procéder pour obtenir des données à partir des champs du modèle d'entreprise et du (des) modèle (s) d'affectation (c.-à-d. Dans une relation has_one et has_many)?Kohana 3: obtention de données associées à partir d'un modèle ORM
EDIT: comme demandé, voici les modèles en question.
Modèle utilisateur
class Model_User extends ORM {
protected $_table_name = 'user';
protected $_primary_key = 'id';
protected $_primary_val = 'username';
protected $_has_many = array(
'task' => array(
'model' => 'task',
'foreign_key' => 'user',
),
);
protected $_belongs_to = array(
'company' => array(
'model' => 'company',
'foreign_key' => 'company'
),
);
Modèle Tâche
class Model_Task extends ORM {
protected $_table_name = 'tasks';
protected $_primary_key = 'id';
protected $_primary_val = 'name';
protected $_belongs_to = array(
'project' => array(
'model' => 'project',
'foreign_key' => 'project'
),
'user' => array(
'model' => 'user',
'foreign_key' => 'user'
),
);
Modèle Société
class Model_Company extends ORM {
protected $_table_name = 'companies';
protected $_primary_key = 'id';
protected $_primary_val = 'name';
protected $_has_many = array(
'user' => array(
'model' => 'user',
'foreign_key' => 'company'
),
);
}
code erreur Lancer, à partir du contrôleur
$users = ORM::factory('user')->find_all();
$list = array();
foreach($users as $user) {
$list[$user->id] = array(
'username' => $user->username,
'email' => $user->email,
'company' => $user->company->name //error:Trying to get property of non-object
)
}
Ah, je le vois: 'foreign_key' => 'company' dans Model_User. Vous ne pouvez pas utiliser à la fois la clé étrangère et la relation avec les mêmes noms. – biakaveron