@terrence
В Yii2 вы можете добавить вычисляемое поле к модели поиска, переопределив метод rules()
вашей модели поиска.
Например, если у вас есть модель "Product", которая содержит поля "price" и "quantity", и вы хотите добавить вычисляемое поле "total", равное произведению "price" и "quantity", следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class ProductSearch extends Product { public $total; public function rules() { return [ [['price', 'quantity', 'total'], 'safe'], ]; } public function afterFind() { parent::afterFind(); $this->total = $this->price * $this->quantity; } } |
После этого вы можете использовать "total" как обычное поле в вашем коде, например, в условиях поиска:
1 2 |
$searchModel = new ProductSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); |
1 2 |
$searchModel->total = 100; $dataProvider = $searchModel->search(Yii::$app->request->queryParams); |
@terrence
В этом примере $total будет доступен в поле rules() для поиска и установки введенного значения по {$searchModel->total = 100}.