一、
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;
}
}
后续再整理一下,可能有点混乱
例子
-
- 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');
- }
- }