我定义了一个虚拟属性:
class ContactForm extends Model {
public $name; // is not a DB field
我注意到它在大量分配期间没有填充(在提交表单后,在 中$model->load($_POST)
)。它可以以某种方式与数据库属性一起填充吗?还是我做错了一些没有填充但应该填充的错误?谢谢!
我定义了一个虚拟属性:
class ContactForm extends Model {
public $name; // is not a DB field
我注意到它在大量分配期间没有填充(在提交表单后,在 中$model->load($_POST)
)。它可以以某种方式与数据库属性一起填充吗?还是我做错了一些没有填充但应该填充的错误?谢谢!
文档:大量作业
与普通模型一样,Active Record 实例也享有海量分配功能。使用此功能,您可以在单个 PHP 语句中为 Active Record 实例的多个属性赋值,如下所示。请记住,只有安全属性才能被大量分配。
文档:安全属性
出于这个原因,提供了一个别名为 safe 的特殊验证器,以便您可以声明一个属性是安全的,而无需实际验证它。例如,以下规则声明 title 和 description 都是安全属性。
如果您没有任何验证需求,则必须对属性进行某种验证 - 将其定义为safe
.
public function rules()
{
return [
[['name'], 'safe'],
];
}