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 値 (主キー) が表示されますが、そのドロップダウンで見たいのは名前 (名前) フィールドです。

多分私は何かが足りない。

どんな助けでも感謝します。

ありがとうアレハンドロ

4

1 に答える 1

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;
}
于 2011-08-20T12:42:40.423 に答える