@Bersonazh

Как правильно передать содержимое во view файл?

Всем доброго дня! Помогите пожалуйста решить несколько вопросов.
У меня на страницу контроллер/вью файл catalog/catalog выводятся товара из бд. У каждого есть кнопка для добавления товара к сравнению. В моем случае по клику на эту кнопку id товара записывается в localStorage, там формируется строка вида 1,1,1,2,3,4, затем аяксом отправляю в обработчик, где
Контроллер
public function actionCompare()
    {
        if(Yii::$app->request->isAjax){
            $goods_id = Yii::$app->request->post('id'); //принимаю запрос аякса
            $goods_id = implode(',',array_unique(explode(',', $goods_id))); // чищу от повторящихся значений 
            $goods_id = explode(',', $goods_id); // разбиваю строку вида 1, 2, 3, 4 и тд
            $compare = new Compare(); 
            $res = Compare::compareBegin($goods_id); //выполняю функцию в модели
            vardump($res);
        }
    }
Модель
public static function compareBegin($goods_id)
		{
			$goodsList = array(); //тут будут хранится все строки из бд
			foreach ($goods_id as $key => $item) { 
			$items = Compare::find()->where('id = :id', [':id' => $item])->asArray()->all(); // меняется $item по значению $id товаров
				array_push($goodsList, $items); //записываю в массив $goodsList массивы $items
			}
			return $items;
			// return $goodsList;
		}

в модели return $goodsList;

5d2dc673e8221810686222.png

return $items;
5d2dc6aa3b807193350888.png


Мне непонятно почему получается столько array оберток, но, главное, как мне нужно правильно передать массив в этот же вью файл(он, получается, является уже исполняемым), чтобы я мог потом через foreach вывести все необходимые мне поля. Прошу с пониманием отнестись и помочь)
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы