Я думаю, что я не понимаю справочное поле.
У меня простая форма
<?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).
Может быть, я что-то упустил.
Любая помощь будет оценена.
спасибо Алехандро
По умолчанию модель отображает поле «имя». Существует несколько способов настройки этого
вы должны, вероятно, пойти после 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; }