我有一个文章类型的视图,我需要扩展这个视图,如果用户打开文章类型“特殊”,我需要在这个视图中显示一些新字段。
我不想为这种类型的表单创建单独的视图,因为只有一个字段不同。
此外,如果保存“特殊”文章,我还需要在数据库中保存一个不同的值,在“类型”字段中。
请建议我如何做到这一点。
好吧,您应该在视图中简单地使用 if 语句来显示或不显示附加字段,并使用beforeSave
模型中的方法来处理您的类型属性。
protected function beforeSave()
{
// if ('Special' article)
// $this->type = 'value';
parent::beforeSave();
}
您还应该考虑使用场景。
我通过在文章模型中添加一个公共变量来解决这个问题,在控制器中我用一个字符串设置变量,并在视图中验证这个字符串。