敏捷工具包ATK4 CRUD中的参考表查找能力

时间:2011-12-05 19:59:54

标签: forms grid crud atk4 agiletoolkit

我需要Agile Toolkit CRUD Grid / Form中的帮助。

我在Agile Toolkit中为员工,职位和部门制作了一个CRUD网格/表格。 这很容易。但我现在很难设定位置和 部门栏目。而不是显示'id'值,我想显示引用 分别在'pos_desc'和'dept_desc'中的文字。

同样在CRUD的添加/编辑表单中,它只显示'id'而不是相应的文本。 有没有办法使用描述文本设置它,但保存'id' 在提交?

谢谢!

这是项目的目录结构和一些代码片段:

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

管理员/ LIB / 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);
    :
    :

LIB /型号/ 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
       }
    }

LIB /型号/ Position.php

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

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

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

LIB /型号/ 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 :(得分:0)

默认情况下,它会在模型​​上查找名为“name”的字段。如果您没有此字段,则需要在Model_Position中覆盖toStringSQL函数。

有关详细信息,请参阅此答案:

reference field on form