Правильное использование фильтра AndWhere в AR - PullRequest
0 голосов
/ 30 октября 2018

Я использую следующий запрос, чтобы получить общее число для отображения небольшого графика панели инструментов над Gridview.

Я хотел бы знать, как этот запрос будет работать как при выборе менеджера (registration_id), так и при выборе ALL (без параметра registration_id).

ФАЙЛ ПРОСМОТРА ИНДЕКСА

$total_received_quota = Quota::find()
        ->where(['quota_status'=> 1])
        ->AndWhere(['quota_registration_id' => $manager])
        ->sum('quota_valor');

CONTROLLER

public function actionIndex()
{
    $searchModel = new QuotaSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    $manager = Yii::$app->getRequest()->getQueryParam('QuotaSearch')['quota_registration_id'];
    $manager = isset($manager) ? $manager : null;

    return $this->render('index', [
        'searchModel'   => $searchModel,
        'dataProvider'  => $dataProvider,
        'manager'       => $manager,
    ]);
}

1 Ответ

0 голосов
/ 30 октября 2018

Попробуйте следующим образом:

 $query= Quota::find()->where(['quota_status'=> 1]);

    if(isset($manager) && $manager!=null)
    {
      $query->andWhere(['quota_registration_id' => $manager]);
    }

  $total_received_quota=  $query->sum('quota_valor');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...