Возможность поиска в справочной таблице в Agile Toolkit ATK4 CRUD - PullRequest
2 голосов
/ 05 декабря 2011

Мне нужна помощь в Agile Toolkit CRUD Grid / Form.

Я создал таблицу / форму CRUD в Agile Toolkit для сотрудника, должности и отдела. Это было очень легко. Но сейчас я испытываю затруднения, пытаясь установить Положение и Отдел колонн. Вместо того, чтобы показывать значение 'id', я хотел бы показать ссылку текст в 'pos_desc' и 'dept_desc' соответственно.

Также в форме добавления / редактирования CRUD, он показывает только «id», а не соответствующий текст. Есть ли способ установить это, используя текст описания, но вместо этого сохранить «id» на коммите?

Спасибо!

Вот структура каталогов проекта и некоторые фрагменты кода:

    + atk4
    + atk4-addons
    + empmaster
      + admin
        + lib
        + page
      + doc
      + lib
        + Model
      + page
      + templates

админ / Библиотека / admin.php

    class Admin extends ApiFrontend {
    :
    :   
       function init(){
    :
    :
          $this->addLocation('..',array(
                      'php'=>array(
                            'lib',
                            )
                      ));
          $this->addLocation('../..',array(
                      'php'=>array(
                            'atk4-addons/mvc',
                            'atk4-addons/misc/lib',
                            )
                      ))
                ->setParent($this->pathfinder->base_location);
    :
    :

Библиотека / модель / Employee.php

    class Model_Employee extends Model_Table {
       public $entity_code = 'emp';

       function init() {
          parent::init();

          $this->addField('eeid')->caption('Emp ID');
          $this->addField('fnm')->caption('First Name');
          $this->addField('mnm')->caption('Middle Name');
          $this->addField('lnm')->caption('Last Name');

          $pos=$this->addField('pos_id')->caption('Position');
          $pos->refModel('Model_Postition');

          $dep=$this->addField('dept_id')->caption('Department');
          $dep->refModel('Model_Department');

          // #1 refModel gives error if declared w/out 'Model_' prefix
          // #2 Position & Department caption not on grid, but only on form
       }
    }

Библиотека / модель / Position.php

    class Model_Position extends Model_Table {
       public $entity_code = 'pos';

       function init() {
          parent::init();

          $this->addField('pos_desc');
       }
    }

Библиотека / модель / Department.php

    class Model_Department extends Model_Table {
       public $entity_code = 'dept';

       function init() {
          parent::init();

          $this->addField('dept_desc');
       }
    }

админ / страница / index.php

    $crud = $tabs->addTab('Employee Master')->add('CRUD')->setModel('Employee');

1 Ответ

0 голосов
/ 06 декабря 2011

По умолчанию он ищет поле с именем «name» в модели. Если у вас нет этого поля, вам нужно переопределить функцию toStringSQL в Model_Position.

См. Этот ответ для получения дополнительной информации:

поле для справки в форме

...