Ballly
@Ballly

Как вывести полученные данные в одном из полей в GridView?

Всем здравствуйте! Опишу в кратце приведенную ниже галиматью, в данном коде я произвожу поиск accept_id из таблицы orderitems, которые соответствуют id в таблице accept, чтобы потом вывести номер документа order_id, максимум всего может быть два номера документа и не более. Код в целом рабочий, номера документов я получаю, но я не знаю как мне сделать вывод, в данном случае выводится только один номера документа, вместо двух номеров, я понимаю что дело в том, что это из-за двух указанных return, но я уже не знаю как сделать по другому, оператор echo для каждой из строк не подходит, т.к. выводит данные над таблицей gridview, а не в ячейке таблицы.
[
	'label' => '',
	'attribute' => 'chek',
	'value' => function($data){           		
		$var1 = $data->orderitems;
		foreach ($var1 as $znach1) {
			$accept[] = $znach1->accept_id;
			$orders[] = $znach1->order_id;
		}
		return $data->id == $accept[0] ? Html::a(Html::encode($orders[0] . ', '), ['order/view', 'id' => $orders[0]]) : '';
		return $data->id == $accept[1] ? Html::a(Html::encode($orders[1]), ['order/view', 'id' => $orders[1]]) : '';
	},
	'format' => 'html',
],

Переписывал код еще следующим образом, но как-то тоже не помогло мне
foreach ($var1 as $key => $value) {
	$accept[] = $value->accept_id;
	$orders[] = $value->order_id;
	return $data->id == $accept[$key] ? Html::a(Html::encode($orders[$key] . ', '), ['order/view', 'id' => $orders[$key]]) : '';
}
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Второй return всё равно не работает. Так то конкатенация строк существует для этого.
return ($data->id == $accept[0] ? Html::a(Html::encode($orders[0] . ', '), ['order/view', 'id' => $orders[0]]) : '')
    . ($data->id == $accept[1] ? Html::a(Html::encode($orders[1]), ['order/view', 'id' => $orders[1]]) : '');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы