2014-01-08 2 views
0

им и обыскал новичок в документации, но не может найти это, как это сделать:ATK CRUD с одним: многие отношениями

У меня есть две таблицы, администратор и приложение. Администратор может иметь много приложений.

ADMIN:

class Model_Admin extends Model_Table { 
    public $entity_code='admin'; 
    function init(){ 
     parent::init(); 

     $this->addField('name'); 
     $this->addField('email'); 
     $this->addField('password')->type('password'); 
     $this->addField('active')->type('boolean')->system(true); 
     $this->addField('super')->type('boolean')->system(true); 
     $this->addField('created')->type('timestamp')->defaultValue($this->dsql()->expr('now()'))->system(true); 
     $this->addField('updated')->type('timestamp')->system(true); 

     $this->hasMany('Application','admin_id'); 
     //$this->hasOne('Application'); 

     $this->addHook('beforeSave',function($m){ 
       $m['updated']=$m->dsql()->expr('now()'); 
       }); 
    } 
} 

ПРИМЕНЕНИЕ:

class Model_Application extends Model_Table { 
    public $entity_code='application'; 
    function init(){ 
     parent::init(); 

     $this->addField('name'); 
     $this->addField('fbid'); 
     $this->addField('fbsecret'); 
     $this->addField('active')->type('boolean')->system(true); 
     $this->addField('created')->type('timestamp')->system(true); 
     $this->addField('updated')->type('timestamp')->system(true); 
    } 
} 

Первый вопрос, когда я генерировать SQL кода (/generate.html) он не производит ничего для одного ко многим. Во-вторых, на странице я добавить CRUD:

$this->add('CRUD')->setModel('Admin'); 

Но нет никакого намека на какой-либо один ко многим. Я бы ожидал этого в форме кнопки добавления, но также нет ничего?

Что я хочу, я могу добавить администратора и выбрать, какие приложения принадлежат ему?

Благодарим за помощь!

ответ

2

в Model_Application

$this->hasOne('Admin'); 

на странице

$this->add('CRUD')->setModel('Application'); 

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

+0

Hi , спасибо за ваш ответ, но это только для решения 1: 1. Я создал новый вопрос о M: M здесь: http://stackoverflow.com/questions/21045491/how-to-implement-crud-with-manymany-relationship – Peter

+0

Нет, это одно для многих соединений, потому что один администратор может иметь нескольких приложений. Для многих-многих соединений вам необходимо использовать прокси-таблицу – Vadym

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