从Model内的hasOne设置下拉值和defaultValue

时间:2012-09-12 03:13:38

标签: frameworks atk4 php

我有以下型号:

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())
        ;

一切都运行得非常完美 - 我如何确保Dropdown(php中的$field)链接到整体表单,即当我更改下拉列表中的值时,该值被传递到{{1 - 如何确保下拉列表的$grantForm->onSubmit(预选值)是由defaultValue内的user_id设置的用户

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

1 个答案:

答案 0 :(得分: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);
    }
}