2012-09-12 65 views
0

我有以下型号:下拉值和默认值从hasOne设置内部模型

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的方式相比,这是一种待遇,只花了一段时间才能完全理解什么是什么。

回答

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