поле ссылки в форме - PullRequest
       22

поле ссылки в форме

2 голосов
/ 20 августа 2011

Мне кажется, я не понимаю эталонное поле.

У меня есть простая форма

<?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');
    }
  }
?>

Когда я запускаю страницу примера, я в раскрывающемся меню (значения параметров) отображал значения идентификаторов (первичный ключ), но в этих выпадающих списках я хочу видеть поле имени (nombre).

Может быть, я что-то упустил.

Любая помощь будет признательна.

спасибо Alejandro

1 Ответ

1 голос
/ 20 августа 2011

По умолчанию модель отображает поле «имя». Есть несколько способов настроить это

  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;
}
...