基本上我有两个模块。
我有一个名为" Repair_Estimate"的表, 所以它将作为模型进行交互。
但是,我想将它们分成两个基于命名空间的两个模块。
所以在模特的文件夹中这样:
models
- estimator
-RepairEstimate.php
- finance
-RepairEstimate.php
因此,在estimator的模型中,RepairEstimate的定义如下:
class RepairEstimate extends \yii\db\ActiveRecord{
public function rules(){
return [
//some rules here
[['inspection_id', 'IDENTITY'], 'required', 'on' => 'pre'],
];
}
public function attributeLabels(){
//some attribte here
return [
'id' => 'ID',
];
}
}
我的问题是,在金融模型中,它定义如下:
class RepairEstimate extends \app\models\estimator\RepairEstimate
{
public function __construct(array $config = [])
{
parent::__construct($config);
}
public function rules()
{
// How to add some rule here ?
return parent::rules(); // TODO: Change the autogenerated stub
}
public function attributeLabels()
{
// How to add some attribute here ?
return parent::attributeLabels(); // TODO: Change the autogenerated stub
}
答案 0 :(得分:2)
您可以使用PHP array_merge
函数:
public function rules()
{
return array_merge(parent::rules(), [
//your additional rules here
]);
}
public function attributeLabels()
{
return array_merge(parent::attributeLabels(), [
//your additional attribute labels here
}
}
或者如果你想改变现有的那些:
$attributes = parent::attributeLabels();
// do something with $attributes array
return $attributes;