2017-09-25 11 views
0

私のCRMシステムにdinamically私のARモデルにプロパティを追加しようとしています。この問題を解決するために最善の解決策を待っているyii2実行時にプロパティを追加する

Setting unknown property: common\modules\crm\models\CrmClient::user_id 

...あなたがモデルGIIあなたを作成する場合

答えて

0

、最初のモデル内のすべてのプロパティを定義します。ここ

public function getCustomFields($key = null) 
{ 
    if (static::$customFields === null) 
    { 
     $fields = (new Query)->from('client_fields')->indexBy('key')->all(static::$conn); 

     if ($columns = static::$conn->getSchema()->getTableSchema('client_profiles')->getColumnNames()) 
     { 
      foreach ($columns as $column) 
      { 
       if (isset($fields[$column])) 
       { 
        static::$customFields[$column]['name'] = $fields[$column]['name']; 
        static::$customFields[$column]['settings'] = @json_decode($fields[$column]['settings'], true); 
       } 

       if(! isset($this->{$column})) 
       { 
        $this->{$column} = null; 
       } 
      } 
     } 

     static::$customFields = static::$customFields ?: []; 
    } 

    return $key ? (isset(static::$customFields[$key]) ? static::$customFields[$key] : null) : static::$customFields; 
} 

そして

は結果であり、プロパティ定義が表示されます。

例えば

/** 
* This is the model class for table "user_activity". 
* 
* @property integer $ua_id 
* @property integer $user_id 
* @property string $filename 
* @property integer $created_at 
* 
* @property User $user 
*/ 
関連する問題