2013-09-19 3 views

ответ

3

Две модели с hasOne соотношением:

class Model_User extends Model_Table { 
    public $table = 'user'; 
    function init() { 
     parent::init(); 
     $this->addField('name'); 
     $this->addField('email'); 
     $this->hasOne('role'); // field role_id in database 
    } 
}  
class Model_Role extends Model_Table { 
    public $table = 'role'; 
    function init() { 
     parent::init(); 
     $this->addField('name'); 
    } 
} 

Использование этих двух моделей:

$cr = $this->add('CRUD'); 
$cr->setModel('Model_User', 
    array('name','email','role_id'), 
    array('name','email','role') 
); 

В сетке вы увидите имя поля из ролей таблицы.
В форме вы увидите раскрывающийся список со всеми ролями в нем. Вы можете выбрать одну роль для каждого пользователя.

+0

Большое спасибо. @vadym, не могли бы вы привести пример для hasmany? – webelizer

+1

На самом деле вам просто нужно добавить $ this-> hasMany ('Пользователь'); в Model_Role. Потому что каждая роль может быть назначена для многих пользователей. – Vadym

2

Read Agile Toolkit низкоуровневый документация здесь:

http://agiletoolkit.org/book.pdf

поможет вам понять модели полностью.

+0

roman это последняя версия? Я прочитал эту книгу около трех или четырех месяцев назад. – webelizer

Смежные вопросы