Kohana 3: ORM modelden ilgili elde veri

0 Cevap php

Kohana 3'ün ORM modellerinin kullanırken, ne ilgili modellerin alanlardan veri almak için en iyi yolu nedir? Örneğin, ben bir şirket vardır ve birçok atamaları olan bir çalışan var. Nasıl şirket modeli ve (yani has_one ve Has_many ilişki) atama model (ler) alanlardan veri alma hakkında gitmek istiyorsunuz?

EDIT: istendiği gibi, burada söz konusu modellerdir.

User Model

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'
        ),
    );

Task Model

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'
        ),
    );

Company Model

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 Throwing Error, From Controller

$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
   )
}

0 Cevap