1

这是对引用字段示例代码的简单重写:

class page_LoadResults extends Page {
function init(){
    parent::init();
    $p=$this;
    $f=$p->add('Form');

$c=$p->add('Model_Season');
$f->addField('reference','Season')
    ->setValueList($c)
    ->validateNotNull()
    ->add('Icon',null,'after_field')
    ->set('arrows-left3')
    ->addStyle('cursor','pointer')
    ->js('click',$f->js()->reload())
    ;

当被调用时,我收到一条错误消息:

\atk4\lib\Form/Field.php:652 [2] htmlspecialchars() 期望参数 1 为字符串,给定数组

查看代码,在 Field.php 的第 648 行附近

    foreach($this->getValueList() as $value=>$descr){
        // Check if a separator is not needed identified with _separator<
        $output.=
            $this->getOption($value)
            .htmlspecialchars($descr)
            .$this->getTag('/option');
    }

确实显然将 $descr 创建为 ($value,descr) 的数组

这是一个错误还是我不在基地。谢谢。

4

1 回答 1

2

使用 atk 4.2 语法

<?php

class page_b extends Page {
    function init(){
        parent::init();
        $p=$this;
        $f=$p->add('Form');
        $field = $f->addField('Dropdown','Season');
        $field->setModel("a");
        $field
            ->validateNotNull()
            ->add('Icon',null,'after_field')
            ->set('arrows-left3')
            ->addStyle('cursor','pointer')
            ->js('click',$f->js()->reload())
            ;
    }   
}
  1. 注意addField("Dropdown")
  2. 使用setModel而不是setValueList($model);
于 2012-04-23T07:09:24.103 回答