Exemplo n.º 1
0
 /**
  * Gets widgets areas from data array.
  *
  * @param array $data
  * @param string $formName
  * @return WidgetArea[]
  */
 protected function getWidgetAreas($data, $formName = null)
 {
     if ($formName === null) {
         $area = new WidgetArea();
         $formName = $area->formName();
     }
     $areas = [];
     if (!empty($data[$formName])) {
         $pks = [];
         foreach ($data[$formName] as $key => $areaData) {
             if (is_string($key)) {
                 $areas[$key] = new WidgetArea();
             } else {
                 $pks[] = $key;
             }
         }
         if ($pks) {
             $areas = $areas + WidgetArea::find()->where(['id' => $pks])->indexBy('id')->all();
         }
     }
     return $areas;
 }