0

我有以下模型:

class Model_GrantMinimal extends Model_Table {
    public $table='grant';

    function init() {
        parent::init();

        $this->hasOne('User');

        $this->getField('id')->hidden(true);
        $this->getField('user_id')->hidden(true);
        $this->addField('grant_number');
        $this->addField('grant_name');
    }
}

在页面内,我有以下代码:

$grant=$this->add('Model_GrantMinimal');
$grant->load($id);
$user=$grant->ref('user_id');
        $field = $grantForm->addField('Dropdown','Manager');
        $field->setModel($user);
        $field
            ->validateNotNull()
            ->add('Icon',null,'after_field')
            ->set('arrows-left3')
            ->addStyle('cursor','pointer')
            ->js('click',$grantForm->js()->reload())
        ;

一切工作几乎完美 - 我如何确保下拉菜单($field在 php 中)链接到整个表单,即当我更改下拉菜单中的值时,该值被传递到$grantForm->onSubmit- 以及如何确保defaultValue(预下拉列表的选定值)是user_id内部设置的用户GrantMinimal

到目前为止,我很喜欢这个框架——它确实令人印象深刻,并且来自 .NET 框架,其中 MVVM 和 MVC 如此普遍,特别是与最新的 WPF 相关。与编写 HTML/PHP 的旧方式相比,这是一种享受,只是需要一段时间才能完全理解什么是什么。

4

1 回答 1

0

经过几个小时的调试跟踪后弄清楚了:

class Model_GrantMinimal extends Model_Table {
    public $table='grant';

    function init() {
        parent::init();

        $this->hasOne('User');

        $this->getField('id')->hidden(true);
        $this->getField('user_id')->hidden(true);
        $this->addField('grant_number');
        $this->addField('grant_name');

        $this->hasOne('User');

        $this->getField('user_id')->caption('Manager')->hidden(false);
    }
}
于 2012-09-12T21:05:02.057 回答