Задать вопрос
@onahapa

Как правильно вывести данные, yii2?

ВСем привет!
Две таблицы: country (id, country_name) и mark (id, country, mark).
пример записи:
country: 1, russia
mark: 1, 1 (country.id), lada
Вывод:
<?php foreach ($countrys as $country): ?>
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
                <?= Html::encode("{$country->country_name}") ?><span class="caret"></span></a>
                <ul class="dropdown-menu">
                    <li>
                        <a href="#"><?= Mark::menu($country->id) ?></a>
                    </li>
                </ul>
            </li>
        <?php endforeach; ?>

функция menu в классе Mark:
class Mark extends ActiveRecord
{
    public static function menu($id)
    {
        $query = self::find();
        $mark = $query->where(['country' => $id])->all();

        $mass = array();
        foreach ($mark as $myMark) {
            $mass[] = $myMark->mark;
        }
        return $mass;

    }
}

и код в контроллере:
public function actionIndex()
    {
        $query = Country::find();
        $countrys = $query->orderBy('country_name')
            ->all();

        return $this->render('index', [
            'countrys' => $countrys,
        ]);
    }

на выходе получаю:
Russia
--array
Помогите разобраться. Спасибо :)
  • Вопрос задан
  • 518 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@bears
У Вас Mark::menu($country->id) возвращает массив.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@onahapa Автор вопроса
for bears
foreach ($query_country as $country) {
            $query_mark = self::findAll([$country->id]);
                $mass[] = [
                    'label' => $country->country_name,
                    foreach ($query_mark as $mark) {
                        'items' => [
                            [
                                'label' => $mark->mark,
                                'url' => ['#']
                            ],
                        ]
                    }
                ];
        }
Ответ написан
Ваш ответ на вопрос

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

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