2011-08-20 39 views
2

我想我不理解参考字段。表格上的参考字段

我有一个简单的表格

<?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

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

  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; 
} 
+0

罗马, 非常感谢。 我只是简单地改变列名,调整一些代码,并让它工作!!!!! 我对框架印象非常深刻,我不是一个非常有经验的框架PHP程序员,只是简单的代码。 我看了其他的选择,但现在我是一个新的敏捷工具包粉丝! 我用几分钟的时间用干净的代码替换了一个老的开发系统,一个很酷的外观和感觉... 再次感谢! –

+0

总是很高兴听到这样的话。请让我知道是否有任何问题,并继续使用4.1版本,它是稳定的,并匹配文件。 http://agiletoolkit.org/distfiles/lab/atk4-example-4.1.zip我会很快宣布它veeery。 – romaninsh