一、
model模型中重写 fields 方法
public function fields() { $fields = parent::fields(); $fields['store_id'] = 'store_id'; $fields['name'] = 'name'; $fields['username'] = 'username'; $fields['password'] = 'password'; $fields['integral'] = 'integral'; $fields['email'] = 'email'; return $fields; }
二、
给model模型增加相对应的成员属性,然后重写 attributes 方法
class user extends \yii\db\ActiveRecord
{
public $store_id; public $name; public $username; public $password; public $integral; public $email;
public function rules(){}
...
...
public function attributes() { $keys = parent::attributes(); $keys[] = 'store_id'; $keys[] = 'name'; $keys[] = 'username'; $keys[] = 'password'; $keys[] = 'integral'; $keys[] = 'email'; return $keys; }
}
后续再整理一下,可能有点混乱
例子
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "{{%cat}}".
*
* @property int $id
* @property int $parent_id 上级分类id
* @property string $name 分类名称
* @property integer $sort
* @property int $addtime
* @property int $is_delete
* @property string $child
*/
class Cat extends \yii\db\ActiveRecord
{
public $child;
/**
* {@inheritdoc}
*/
public static function tableName()
{
return '{{%cat}}';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['parent_id', 'addtime', 'is_delete', 'sort'], 'integer'],
[['name'], 'required'],
[['name'], 'string', 'max' => 255],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'parent_id' => '上级分类id',
'name' => '分类名称',
'sort' => '排序,升序',
'addtime' => 'Addtime',
'is_delete' => 'Is Delete',
];
}
public function fields()
{
$fields = parent::fields();
$fields['child'] = 'child';
return $fields;
}
public function attributes()
{
$keys = parent::attributes();
$keys[] = 'child';
return $keys;
}
/**
* [getChildrenList 获取和父级select一致的子级列表{还有完善空间}]
*/
public function getChildrenList()
{
$keys = array_keys(array_filter($this->attributes)); // 使用$this->attributes 并不靠谱, 这里需要获取父级的select 都设置了哪些字段
return $this->hasMany(Cat::className(), ['parent_id' => 'id'])->select($keys)->where(['is_delete' => 0])->orderBy('sort,addtime DESC');
}
}