2

AgileToolkitCRUDグリッド/フォームのヘルプが必要です。

従業員、役職、部門向けにアジャイルツールキットでCRUDグリッド/フォームを作成しました。とても簡単でした。しかし、現在、位置と部門の列を設定しようとすると問題が発生します。'id'値を表示する代わりに、参照されているテキストをそれぞれ'pos_desc'と'dept_desc'に表示したいと思います。

また、CRUDの追加/編集フォームでは、「id」のみが表示され、対応するテキストは表示されません。説明テキストを使用してこれを設定する方法はありますが、コミット時に代わりに「id」を保存しますか?

ありがとう!

プロジェクトのディレクトリ構造といくつかのコードスニペットは次のとおりです。

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

admin / 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 / Model / 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 / Model / Position.php

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

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

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

lib / Model / Department.php

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

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

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

admin / page / index.php

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

1 に答える 1

0

デフォルトでは、モデルで「name」という名前のフィールドを検索します。このフィールドがない場合は、Model_PositionのtoStringSQL関数をオーバーライドする必要があります。

詳細については、次の回答を参照してください。

フォームの参照フィールド

于 2011-12-05T23:18:53.577 に答える