【问题标题】:reference field on form表格上的参考字段
【发布时间】:2011-08-20 11:24:50
【问题描述】:

我想我不了解参考字段。

我有一个简单的表格

<?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 值(主键),但我想在该下拉列表中看到的是名称(名词)字段。

也许我错过了什么。

任何帮助将不胜感激。

谢谢 亚历杭德罗

【问题讨论】:

    标签: php atk4


    【解决方案1】:

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

    1. 按计算定义名称字段
    2. 重新定义 Model_Usuario::toStringSQL()
    3. 从 4.1 开始,您还可以通过属性定义字段名称。

    你可能应该在 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;
    }
    

    【讨论】:

    • 罗曼,非常感谢。我只是简单地更改列名,调整一些代码并让它工作!!!!!!框架给我留下了深刻的印象,我不是一个很有经验的框架php程序员,只是简单的代码。我一直在寻找其他替代方案,但现在我是敏捷工具包的新粉丝!!!我在几个小时内就用干净的代码、很酷的外观和感觉替换了一个旧的开发系统……再次感谢!!!
    • 总是很高兴听到这样的话。请让我知道是否有任何问题并继续使用 4.1 版本,它很稳定并且与文档相匹配。 agiletoolkit.org/distfiles/lab/atk4-example-4.1.zip我很快就会宣布它。
    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多