表格上的参考字段

时间:2011-08-20 11:24:50

标签: php atk4

我想我不理解参考字段。

我有一个简单的表格

<?php

class page_prueba extends Page {
  function init(){
    parent::init();
    $p=$this;
    $f=$p->add('Form');
    $f->setSource('ticket');
    $f->addField('line','texto')->validateNotNull();
    $f->addField('text','detalle')->validateNotNull();
    $c=$p->add('Model_Usuario');
    $f->addField('reference','usuario')->setValueList($c)->validateNotNull();
  }
}

我有一个用户模型

<?php
  class Model_Usuario extends Model_Table {
    public $entity_code='usuario';
    public $table_alias='u';
    function defineFields(){
      parent::defineFields();           
      $this->addField('nombre');
      $this->addField('password');
      $this->addField('email');
      $this->addField('telefono');
      $this->addField('descripcion');
      $this->addField('interno');
      $this->addField('esadmin');
    }
  }
?>

当我运行示例页面时,我在下拉列表(选项值)上显示了id值(主键),但我想在下拉列表中看到的是名称(nombre)字段。

也许我错过了什么。

任何帮助都会受到赞赏。

感谢 亚历

1 个答案:

答案 0 :(得分:1)

默认情况下,模型显示“名称”字段。有几种方法可以自定义

  1. 将名称字段定义为已计算
  2. 重新定义Model_Usuario :: toStringSQL()
  3. 从4.1开始,您还可以通过属性定义字段名称。
  4. 你应该追求2,这是例子:

    public function toStringSQL($source_field, $dest_fieldname, $expr = 'name') {
        // return parent::tostringSQL($source_field,$dest_fieldname, 'date')
    
        return 'concat(name," ",surname) as ' . $dest_fieldname;
    }