Yii2使用私有财产-非数据库列

时间:2018-09-10 18:16:30

标签: properties yii2

我正在与Yii2一起工作,直到现在为止,对非db列使用公共属性,如下所示:

public $category_id;
public function rules() {
        return [
            [['category_id'], 'safe'],           
        ];
    }
//// inside $dataProvider
$this->load($params);

它完美地工作。但是现在我想将category_id设置为私有,以便如何在规则内管理它以及如何加载以及在加载时在form元素内进行设置?

1 个答案:

答案 0 :(得分:0)

您可以使用accessor和mutator来访问您的私有属性,例如:

private category_id;

public function setCategory (value)
{
    $this->category_id = value;
}

public function getCategory()
{
    return $this->category_id;
}

这些方法允许在应用程序的其他部分中将私有属性用作具有不同名称的公共属性。例如,您可以在规则中使用它

public function rules()
{
    return [['category', 'safe']];
 }

或在其他代码中:

$model->category = 777