Yii2 是不是没法对 rules 和 attributeLabels 进行继承? [ 2.0 版本 ]
比如我在 common/models
这个目录下有个 Operation
模型,然后在 backend/models/form
目录下有adForm
、bannerForm
继承了 Operation
,其中 ad
、banner
共有的属性都放在 Operation
,也就是rules
和 attributeLabels
里面,adForm
、bannerForm
只是放他们各自有的属性,可是发现使用adForm
没法把 Operation
中的 rules
属性继承过来,好像是 adForm
里面的 rules
会覆盖掉Operation
,而不是对 rules
进行追加,要怎么弄,才能是的两个文档的 rule
都拼起来,不用把Operation
里面的共有属性 rules
要重复写?
最佳答案
-
rules() 和 attributeLabels() 返回的都是数组,在子类内调用
parent::rules()
或parent::attributeLabels()
可获取,之后自行组装即可,下面是自定义 attributeLabels() 的例子:// adForm.php use yii\helpers\ArrayHelper; public function attributeLabels() { // parent::attributeLabels() 内含有 Operation 内的属性标签 return ArrayHelper::merge(parent::attributeLabels(), [ // 这里放置 adForm 内的属性标签 'status' => '状态', ]); }
共 3 条回复
其他 0 个回答
没有找到数据。
clao
注册时间:2018-08-03
最后登录:2022-01-25
在线时长:9小时19分
最后登录:2022-01-25
在线时长:9小时19分
- 粉丝1
- 金钱80
- 威望20
- 积分370