【问题标题】:How can I make private ActiveRecord db attribute in Yii2?如何在 Yii2 中创建私有 ActiveRecord 数据库属性?
【发布时间】:2015-04-14 13:35:47
【问题描述】:

例如,我有一个模型 Person,它是使用 Gii 模型生成器从 db 表“person”创建的,其中包含“firstname”和“lastname”字段。 我可以像

一样访问这些属性
$person = Person::findOne($PersonId);
$personFirstname = $person->firstname;

如果我使用 getter 和 setter 创建了自定义属性 fullname

public function getFullname()
{
    return $this->firstname .' '.$this->lastname
}

我不再需要“名字”和“姓氏”了。我想隐藏它们。设为私有。我该怎么做?

【问题讨论】:

  • 要将属性设为私有,您可以将其放入数据库表中。
  • 对不起,没听懂。名字和姓氏已经在表中。
  • 你为什么需要这个???
  • 为什么程序员需要在模型中拥有私有属性? ;) 名字\姓氏的例子只是一个例子。

标签: php activerecord yii2


【解决方案1】:

您可以实现您的目标,创建新模型并从Person 扩展他的模型。并设置您需要的属性。其工作原理见thisthis

【讨论】:

  • Hmm.. 在这些示例中,类是从 Model 类扩展而来的,而不是从 ActiveRecord 扩展而来的。在 ActiveRecord 中,'firstname' 和 'lastname' 是虚拟属性。
猜你喜欢
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 2015-07-24
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多