properties - Yii2 使用私有财产 - 非 db 列
问题描述
我正在使用 Yii2 并且迄今为止使用非 db 列的公共属性,如下所示:
public $category_id;
public function rules() {
return [
[['category_id'], 'safe'],
];
}
//// inside $dataProvider
$this->load($params);
它完美地工作。但是现在我想将 category_id 设为私有,那么如何在规则中管理它以及如何在加载时加载和设置内部表单元素?
解决方案
你可以使用 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
推荐阅读
- docker-compose - 使用 Docker Compose 将 Asp.Net ABP angular 和 asp.net core 部署到 Azure
- java - 在 MongoDB 上插入多个 CSV 文件时出现批量写入操作错误
- javascript - 尝试访问本地 json 文件时出现 CORS 错误
- react-native - 在 React Native 中操作全局状态变量
- python - 即使使用 selenium 也无法让 HTML 匹配检查页面 - Python 3
- r - 使用 mutate() 将列添加到数据框作为任意其他列集的函数
- java - 如何编写自己的 ListSelectionEvent?
- aws-lambda - 使用 Lambda 代理时如何将 lambda 段 (XRAY) 标记为错误
- express - socket.io 可以加入房间但不能离开房间
- excel - 创建 2 个列表,将每个值与 1 个列表中的每个值进行比较