@Caspergreen

Почему возвращается последний элемент массива в DetailView, yii2?

Вывожу
[
                'label' => 'User',
                'format' => 'html',
                'value' => function($model) {
                    foreach (UserHelper::getName($model->user_id) as $val) {
                        return $val['name'];
                    }
                }
            ],

Возвращает последний элемент в массиве.
Функция getName
public function getName($json) {
        $json = json_decode($json, true);
        $uid = [];
        foreach($json as $id){
            $uid[] = $id['user_id'];
        }
        foreach(User::findAll(['id' => $uid]) as $user){
            $name[] = ['name' => $user['name']]; 
        }
        return $name;
        
    }


Переменная $json
[{"user_id":"1"},{"user_id":"2"}]

Как вывести имена через запятую в detailview?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Доброе утро.
Есть такая штука как implode()
А решение может выглядеть так:
$users = User::find()->select('name')->where(['id' => $uid])->column();
echo implode(',', $users);

При этом Ваш код изменится так:
'value' => function($model) {
    $users = User::find()->select('name')->where(['id' => $uid])->column();
    return implode(',', $users);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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