Пример #1
0
 /**
  * Displays homepage.
  *
  * @return mixed
  */
 public function actionIndex()
 {
     $dataProvider = new ActiveDataProvider(['query' => Firms::find()]);
     $dataProviderPhones = new ActiveDataProvider(['query' => Phones::find()]);
     $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN  " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id";
     $query = Firms::findBySql($sql);
     $dataProvider1 = new ActiveDataProvider(['query' => $query]);
     $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN  " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) = '0'";
     $query = Firms::findBySql($sql);
     $dataProvider2 = new ActiveDataProvider(['query' => $query]);
     $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN  " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) >= '2'";
     $query = Firms::findBySql($sql);
     $dataProvider3 = new ActiveDataProvider(['query' => $query]);
     $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN  " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) < '2'";
     $query = Firms::findBySql($sql);
     $dataProvider4 = new ActiveDataProvider(['query' => $query]);
     $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN  " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) = (SELECT MAX( cpid) AS mcpid\n                    FROM (\n                    SELECT count(FirmID) AS cpid\n                    FROM " . Firms::tableName() . "\n                    LEFT JOIN " . Phones::tableName() . " ON id = FirmID\n                    GROUP BY FirmID\n                    ) AS cphone)";
     $query = Firms::findBySql($sql);
     $dataProvider5 = new ActiveDataProvider(['query' => $query]);
     return $this->render('index', ['dataProvider' => $dataProvider, 'dataProviderPhones' => $dataProviderPhones, 'dataProvider1' => $dataProvider1, 'dataProvider2' => $dataProvider2, 'dataProvider3' => $dataProvider3, 'dataProvider4' => $dataProvider4, 'dataProvider5' => $dataProvider5]);
 }