2014-01-08 133 views
0

我試圖從一個表值列在創建模型類動態屬性,屬性和規則。創建動態屬性,在模型類屬性 - Yii框架

考慮我有一個名爲「XXX」一表,該表具有列「姓名」現在我想創建一個規則,屬性模特類和使用存儲在數據庫的名稱屬性值。

我是新來Yii框架誰能給主意呢?

+0

我會嘲笑sonething高達品脫你在正確的方向,給我10分鐘 – DarkMukke

回答

1

這是我很快嘲笑了,我希望它在正確的方向指向歐

$sql="SELECT 'Name' FROM XXX"; 
$names =$connection->createCommand($sql)->query()->readAll(); 

$myDynamicObject = new DynamicModel($names); 

class DynamicModel extends CModel 
{ 
    protected $_members = array(); 


    public function __construct($nameFields) 
    { 
     foreach ($nameFields as $member) { 
      $this->_members[$member] = null; 
     } 

     parent::__construct(); 
    } 

    /** 
    * @return array validation rules for model attributes. 
    */ 
    public function rules() 
    { 
     $allMembers = implode(', ', array_keys($this->_members)); 
     return array(
      array($allMembers, 'required'), 
     ); 
    } 

    public function __get($attribute) 
    { 

     if (in_array($attribute, array_keys($this->_members))) { 
      return $this->_members[$attribute]; 
     } else { 
      return parent::__get($attribute); 
     } 
    } 

    public function __set($attribute, $value) 
    { 
     if (in_array($attribute, array_keys($this->_members))) { 
      return $this->_members[$attribute] = $value; 
     } else { 
      return parent::__set($attribute, $value); 
     } 
    } 

    public function getAttributes() 
    { 
     return $this->_members; 
    } 

    public function setAttributes($attributes) 
    { 
     $this->_members = $attributes; 
    } 

} 
+0

我得到這個錯誤致命錯誤:類「COutputProcessor」在d未找到:\ XAMPP \ htdocs中\ ccvv7 \保護\型號\ DynamicModel.php上線56 –

+0

@Manadh:不知道爲什麼,雖然,我沒有看到它有什麼用代碼我寫 – DarkMukke

+0

確定如何使用上面的代碼 –